java - 如何在没有文件 I/O 的情况下打印 SealedObject 加密数据?
问题描述
下面是我的代码。当我尝试打印密封对象时,它只显示
“javax.crypto.SealedObject@34dac684”
private void encryptUserCodes(List<UserCode> userCodes) {
try {
// generate a secret key using the DES algorithm
key = KeyGenerator.getInstance("DES").generateKey();
ecipher = Cipher.getInstance("DES");
dcipher = Cipher.getInstance("DES");
// initialize the ciphers with the given key
ecipher.init(Cipher.ENCRYPT_MODE, key);
dcipher.init(Cipher.DECRYPT_MODE, key);
// create a sealed object
SealedObject sealed = new SealedObject((Serializable) userCodes, ecipher);
//PRINT SEALED OBJECT HERE
}
catch(Exception e){
e.printStackTrace();
}
}
解决方案
System.out.println
将始终打印toString()
方法的值。在您的情况下,打印 Class@hex 是 Object 类中的默认实现,它在 java 中的所有类中都被继承。
您可以创建自定义方法来打印您的对象。
通过从您的对象调用 getter 方法并打印它们来提供遍历期望结果的方法定义。连接和返回也是一种选择。
推荐阅读
- python - 当我尝试在 django 中进行迁移时,出现未定义的 DJANGO_SETTINGS_MODULE 错误
- android - 从 Glide 获取链接以稍后将其用作资源
- javascript - 如何将带有子查询的 SQL 查询解析到字段中?
- f# - 是否可以在内部类型上有一个 F# 运算符重载,可用于程序集中的所有文件?
- java - 动态保存活动当前布局
- mysql - 如何比较当前时间与 26/09/2018 04:10 AM
- wpf - 我的 DLL 中的虚拟 MouseButtonEventHandler 被调用应用程序覆盖
- mysql - talend中的MySQL连接失败
- c# - System.UnauthorizedAccessException:访问路径被拒绝-Xamarin
- java - 如何使用 Jackson 以最简单的形式破坏 JSON