使用 MD5 加密密码创建网络凭据实例



我必须通过 C# 中的代码发送电子邮件,smtp 服务器需要身份验证,因此我需要创建一个新的NetworkCredential实例。

现在的问题是我想使用MD5之类的加密方法将密码存储在数据库中,但是NetworkCredential构造函数输入了一个明确的密码,如何使用MD5加密密码创建NetworkCredential实例?

对不起,我的英语不好

存储机密的最佳方法是根本不拥有它。对此进行了广泛的讨论,例如,请参阅在数据库中存储密码的最佳方法。

如果必须以可检索的方式存储密码,则一般方法是使用对称算法(例如AES)对其进行加密。要使用对称算法,您需要有一个密钥,现在的问题变成了:如何安全地存储私钥?人们为保护密钥而做的事情:

  • 使用强复合盐作为组合以制作私钥的部分(应用程序嵌入,注册表,硬件特定的熵,如CPU ID等)
  • 使用设备或芯片存储密钥,如 TPM(受信任的平台模块)
  • 使用 ACL(访问控制列表)禁止访问存储密钥的文件
  • 使用操作系统提供的安全存储来存储部分盐或密钥
  • 从安全服务器即时请求密钥并尽快处理

所有这些只会提高标准,但不会保护确定的攻击者。

我知道一些商业公司提供付费解决方案,以加密方式将密钥分散在程序代码中,因此无法检索它,例如通过附加调试器并拦截对密钥在明文中的位置的调用。搜索"metaforic"以获取此类商业解决方案的示例。

相关内容

  • 没有找到相关文章

最新更新