加密/准备密码以插入数据库的最佳方法

时间:2012-01-12 19:57:54

标签: php mysql html

  

可能重复:
  Secure hash and salt for PHP passwords

准备密码以插入数据库的最佳方法是什么,我知道md5,但我想知道是否有更多的功能/加密我可以做到。

谢谢!

3 个答案:

答案 0 :(得分:1)

标准做法是在加密前salt密码。

  

在密码学中,盐由随机位组成,创建其中一个   输入到单向函数。另一个输入通常是密码或   密码。可以存储单向函数的输出   而不是密码,仍然用于验证用户。该   单向函数通常使用加密散列函数。盐   也可以通过密钥导出函数与密码组合   作为PBKDF2生成用于密码或其他密钥的密钥   加密算法。在密码的典型用法中   身份验证,salt与输出一起存储   单向函数,有时与迭代次数一起   用于生成输出(用于键拉伸)。早期的Unix系统   使用12位盐,但现代实现使用更大的长度   48到128位。盐与nonce的概念密切相关。该   使用salted密码提供的好处是制作查找表   协助字典攻击存储的值不切实际,   只要盐足够大。也就是说,攻击者不会   能够创建一个预先计算的查找表(即彩虹表)   散列值(密码+盐),因为它会占用太多空间。   一个简单的字典攻击仍然很有可能,尽管很多   由于无法预先计算,因此速度较慢。

答案 1 :(得分:1)

你真的不想加密密码,而是加密密码,你只是“匹配”。

存储密码非常不安全,加密可能会被破坏,单向哈希不能*

参考SO:

**但是,我知道*

答案 2 :(得分:0)

我通常使用sha1()来加密我的密码