【发布时间】:2012-04-10 12:10:08
【问题描述】:
Rfc2898DeriveBytes 类从给定的字符串密码派生出新的加密密钥。据我了解,这应该会增加给定密钥的安全性,因为您不必永久存储密钥 - 它始终可以从用户已知的值派生。但是,由于它只需要一个string 值作为输入,因此原始密码会一直保留在内存中,直到它被 GC 处理。在我看来,这是一个潜在的安全问题,与将密钥本身存储在系统上一样危险。 .NET 框架提供了一个SecureString 实现来保护内存中的密码。但 Rfc2898DeriveBytes 不接受安全字符串。
有什么方法可以从 SecureString 生成加密密钥?
【问题讨论】:
-
或者,回答这个问题:如果没有平台API进行推导,那么创建
SecureString实例是没有用的。 -
是的 - 这完全是一个骗局。想知道为什么当我在 SO 上搜索它时它没有出现。 Rfc2898DeriveBytes 是一个非常罕见的类,我希望它会发现:(
标签: c# .net cryptography