在阅读不同的线程之后,我将以下测试代码放在一起以加密和解密字符串。在实际应用程序中,加密字符串将存储在文件中,并在重新启动应用程序并读取文件后进行解密。因此我也要存储初始化向量(IV)。在测试代码中,通过将IV保存在成员变量initializer
中来模拟。毕竟,应用程序和测试代码工作正常。
但我想知道,密码是否成为IV的一部分:密码进入keySpec
,keySpec
用于生成secretKey
,secretKey
成为用于初始化secretKeySpec
的{{1}},从cipher
的参数参数规范中检索IV ...
...所以密码可能是IV的一部分,不是吗?当然,我不想将密码与加密文本一起存储。
cipher
答案 0 :(得分:1)
不,不会根据密码生成IV。 IV是随机生成的,用于确保如果使用相同的密钥加密相同的明文两次,则不会获得相同的密文。