j3d*_*j3d 4 database encryption passwords
我正在开发一个Web应用程序,最终用户必须为其创建一个帐户.这部分非常简单:我将使用SHA-256对密码进行哈希处理,以便除了用户自己以外没有人知道密码.现在来了困难的部分.用户创建帐户后,他/她必须提供他/她的电子邮件服务器的密码.现在的问题是:我如何正确地保护这个密码(密码将存储在数据库中)?如果我使用TripleDES加密密码,任何开发人员或系统管理员都可以解密密码并查看密码.处理这种问题的常用方法是什么?非常感谢.
blo*_*art 10
通常的方法是使用从用户密码派生的对称加密密钥.执行此操作的标准方法是使用RFC2898中指定的算法,该算法生成一组可用作密钥和IV的加密安全字节.它可能是由您的语言库支持的,例如.NET,我使用的是Rfc2898DeriveBytes类.
当然,当您的用户更改其密码时,您必须解密任何现有的密码文本,然后派生新密钥并重新加密.