对于Java中的加密... http://cwe.mitre.org/data/definitions/329.html上的文章指出初始化向量每次都应该不同,但是如果我使用不同的IV来解密而不是我用来加密的那个,我会得到垃圾字符而不是我期望的数据。
在一台服务器上加密并在另一台服务器上解密而不必在服务器之间来回传送IV的正确方法是什么?
常见的技术似乎是硬编码一个字节数组,但据说这是不安全的???
答案 0 :(得分:10)
我相信一个IV就像一个盐 - 这不是秘密,它只是用于引入一个额外的随机元素,以便用相同的密钥加密的相同消息每次都会以不同的方式出现
因此,您可以将用于加密的IV作为加密值的一部分进行传输,就像您将盐与散列值的散列一起存储一样。
当然,我可能完全不正确......