在MySQL数据库中存储用户名和密码的最佳实践

Phi*_*ung 15 mysql database encryption database-design password-encryption

可能重复:
PHP密码的安全散列和盐

我正在制作一个在MySQL数据库中存储用户凭据(电子邮件,用户名和密码)的系统,并且看到使用加密,腌制和加密类型的观点存在冲突.

你会推荐哪些最好的方法?在MD5或SHA1中编码?腌制还是不腌制?只加密密码或所有3个元素?

jbt*_*ule 11

对于密码哈希使用PBKDF2,它是NIST批准的.您应该为每个密码和非平凡(超过1000)迭代计数使用随机非秘密盐.

对于用户名和电子邮件,可能不值得加密.


Dar*_*ren 6

IMO的最佳实践是:

  • 使用散列算法,如SHA256或SHA512.MD5现在不安全,因为您可以反转哈希/执行彩虹攻击.

  • 使用强盐来确保攻击者无法猜出通常的哈希密码,如果他们进入您的数据库.

  • 不要使用加密.

  • 只对密码,用户名和电子邮件进行哈希处理,就像纯文本一样.