【发布时间】:2013-10-15 06:20:13
【问题描述】:
我使用以下代码将我的 SecretKey 写入文件。同样,我必须将 ivParameterSpec 写入另一个文件。我该怎么做?
SecretKey key = KeyGenerator.getInstance("AES").generateKey();
ObjectOutputStream secretkeyOS = new ObjectOutputStream(new FileOutputStream("publicKeyFile"));
secretkeyOS.writeObject(key);
secretkeyOS.close();
AlgorithmParameterSpec paramSpec1 = new IvParameterSpec(iv);
session.setAttribute("secParam", paramSpec1);
ObjectOutputStream paramOS = new ObjectOutputStream(new FileOutputStream("paramFile"));
paramOS.writeObject(paramSpec1);
paramOS.close();
【问题讨论】:
-
iv 是 16 位字节数组
-
我认为,将字节数组写入文件的这个答案应该对您有所帮助。 stackoverflow.com/questions/4350084/byte-to-file-in-java
-
不,这是不可能的。 paramspec1 不是字节数组
-
为什么要保存对象?保存 iv 并在需要解密时从中创建一个新规范
-
IV 是定义 IvParameterSpec 的部分。如果您存储 iv 并再次加载它。 new IvParameterSpec(loaded_iv) 这个新的参数规格等于另一个。您的代码不起作用,因为 IvParameterSpec 不可序列化,因为它不打算存储
标签: java cryptography aes secret-key