我想在我的应用程序中实现最安全、最可靠的对称密钥加密形式。用户应该输入密码来加密/解密,仅此而已。对于 RijndaelManaged,必须输入密钥和 IV。我不确定如何解决这种情况。现在,我输入的密码被 SHA256 散列,然后被用作 Rijndael 的密钥。我用什么做静脉输液?另一个密码?
问问题
5870 次
3 回答
12
您可以使用GenerateIV
(overridden in RijndaelManaged
) 来生成 IV。然后,您可以将 IV 与密文一起传输。您可以认为 IV 有点像盐 - 基本上它可以防止每次将相同的明文加密为相同的密文。不要重复使用 IV - 这使它毫无意义。为每条消息生成一个新消息。
于 2010-03-27T19:32:25.693 回答
3
有一个特殊的功能可以从密码中获取密钥,我相信它比哈希更安全。您可能想查找 Rfc2898DeriveBytes 类。它需要一个
Salt
和一个密码。将未加密的 IV(和 Salt)添加到消息中是一种公认的做法。
如果您创建 Rijndaal 类的实例,它会自动生成一个 IV,发送者可以使用它。
于 2010-03-27T19:39:11.987 回答