【发布时间】:2011-12-21 09:57:18
【问题描述】:
【问题讨论】:
-
您可以要求用户通过阶段
标签: c# .net encryption cryptography
【问题讨论】:
标签: c# .net encryption cryptography
如果您在 System.Security.Cryptography 命名空间中使用加密类,请使用 Rfc2898DeriveBytes 类(@CodeInChaos 指出它取代了 PasswordDeriveBytes)从密码中派生密钥。
如果一个随机键没问题,SymmetricAlgorithm 类有一个GenerateKey 方法。
【讨论】:
Rfc2898DeriveBytes msdn.microsoft.com/en-us/library/…
Rfc2898DeriveBytes 是 PBKDF2,PasswordDeriveBytes 是 PBKDF1。我只是假设 2 比 1 好。
PasswordDeriveBytes 中实现(扩展)它,请参阅:stackoverflow.com/a/8459312/220643
这取决于你处理钥匙。
如果您自动生成密钥并且只是使用密钥交换方法在某个通道上交换密钥,那么您应该使用诸如RNGCryptoServiceProvider 之类的强随机数生成器来生成密钥。实际上 .NET 中的大多数密码器都会自动生成一个随机密钥。
如果你想让某种用户输入密码,那么我建议你使用Rfc2898DeriveBytes 类。 .NET Security blog上也有关于Rfc2898DeriveBytes的教程。
【讨论】:
【讨论】: