【发布时间】:2021-02-13 01:13:09
【问题描述】:
我正在尝试开发一个需要 aes-128-cbc 来加密文本的 http 服务器。 要求是使用 aes-128-cbc 和 aes-key 加密文本。但是没有 提及如何提供iv。 iv 是可选的还是有默认的 iv?
如果有这样的aes-128-cbc加密方法的协议,我正在徘徊:
string Encrypt(string plainText, string encryptKey)
string Decrypt(string cipher, string encryptKey)
【问题讨论】:
-
IV 每次都应该是唯一的,所以它可能是随机生成的。通常它被预先添加到未加密的二进制密文中,因此解密方法可能只是在解密之前从 blob 中读取它。真的应该没有理由指定特定的 IV...
-
现在我知道 IV 是必要且随机的。但这是否意味着 IV 应该在我们提到它的前 16 位加密文本中,就像数学中的 1+1=2 一样?我在 openssl 中注意到加密文本总是以“Salted__”开头。那是协议吗?又是怎么救IV的?
-
将完全取决于实现...en.wikipedia.org/wiki/Initialization_vector
标签: c# encryption openssl cryptography