我想在我的应用程序中实现最安全,最可靠的对称密钥加密形式。用户应该输入密码来加密/解密,这就是全部。对于RijndaelManaged,必须输入密钥和IV。我不确定如何处理这种情况。现在,我输入的密码被SHA256散列,然后被用作Rijndael的密钥。我用什么用于IV?另一个密码?
答案 0 :(得分:11)
您可以使用GenerateIV
(在RijndaelManaged
中重写)来生成IV。然后,您可以将IV与密文一起发送。您可以将IV视为有点像盐 - 基本上它会阻止同一明文每次加密到相同的密文。不要重复使用IV - 这使它毫无意义。为每条消息生成一个新消息。
答案 1 :(得分:3)
从密码中获取密钥有一个特殊功能,我相信它比哈希更安全。您可能想要查看Rfc2898DeriveBytes类。它需要Salt
和密码。
将未加密的IV(和Salt)添加到邮件中是一种公认的做法。
如果您创建Rijndaal类的实例,它会自动生成IV,发件人可以使用它。
答案 2 :(得分:2)