对于 Java 中的加密... http://cwe.mitre.org/data/definitions/329.html 上的文章指出初始化 vector 每次都应该不同,但如果我使用与加密时不同的 IV 进行解密,我会得到垃圾字符而不是我预期的数据。
在一台服务器上加密并在另一台服务器上解密而无需在服务器之间来回传递 IV 的正确方法是什么?
常见的技术似乎是硬编码一个字节数组,但据说这是不安全的???
最佳答案
我相信 IV 就像盐一样 - 它不是 secret ,它只是用来引入额外的随机性元素,这样用相同 key 加密的相同消息每次仍然会出现不同的结果.
因此,您可以将用于加密的 IV 作为加密值的一部分进行传输,就像您将盐与散列值一起存储以获取散列值一样。
当然,我可能完全不正确......
关于java - 如何使 IvParameterSpec 随机但仍然解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275944/