Jar*_*rpi 11 php hash md5 password-protection
我正在创建一个游戏社区网站,我的目标是尽快向公众发布.目前,我正在研究密码和登录.我之前只使用过MD5,但我读过有关密码安全的内容,并且听说盐腌是目前的方法.
这是我的计划:每个用户都有自己独特的12个随机字符(#/¤&etc),存储在users表中.在注册时对盐进行哈希处理(使用SHA-256)和密码,并在登录时重新进行哈希处理.
这听起来怎么样?我可以改进什么吗?我应该选择SHA-512和更长的盐,还是这个呢?
Bil*_*win 17
您对12字节的建议应该是盐的足够长度.这将需要字典攻击来准备2 96个散列密码数据库.总有一天,对于一个破解者而言,这可能是一个微不足道的操作,但我们还有一段距离.
NIST建议SHA256具有足够的密码散列强度,至少目前是这样.
如果您想探索更强大的密码安全方法,请研究密钥强化技术,如PBKDF2,或使用Bcrypt进行自适应散列.但是这些在SQL中没有直接的支持.您必须在应用程序代码中进行散列,然后将散列摘要发布到您的数据库.
对于游戏网站来说,这似乎是安全性过度,但这是一个很好的做法.因为许多用户(不建议)使用与他们的银行登录相同的密码进行游戏登录!您不希望对导致重大损失的身份验证违规行为负责.
更新:
不要使用散列或 HMAC。使用bcrypt或scrypt. 请参阅http://codahale.com/how-to-safely-store-a-password/
原来的:
不要简单地散列。使用 HMAC。(如果有可用的库,请避免自己进行哈希或加密,因为库受益于专家的输入。)
参考:
这可能足以满足您的用例。
但是,可以通过以下方式改进:
增加盐的大小
盐不应仅限于一小部分字符
迭代哈希,例如 1000 次(密钥强化)
看看phpass。
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |