当前位置:  开发笔记 > 编程语言 > 正文

最佳实践:在表中存储密码的最安全方法?

如何解决《最佳实践:在表中存储密码的最安全方法?》经验,为你挑选了1个好方法。

我正在使用PHP.我曾经使用原生的mysql函数password()来存储密码.我被告知密码()不再安全了.在PHP中存储密码的最佳方法是什么?是MD5吗?



1> Asaph..:

2016年更新答案:

PHC(密码哈希竞争)的获胜者是Argon2.使用Argon2哈希密码是截至2016年的最佳做法.

PHC从2013年开始到2015年作为公开竞争 - 与NIST的AES和SHA-3竞赛相同的过程,以及开发加密标准的最有效方式.我们收到了24位候选人,其中包括许多出色的设计,并选出了一位获奖者Argon2,一种由Alex Biryukov,Daniel Dinu和来自卢森堡大学的Dmitry Khovratovich设计的算法.

我们建议您使用Argon2而不是传统算法.

该参考实现可以在GitHub上.

更新的答案2012:

我在下面给出的原始答案曾被认为是最佳实践.然而,哈希计算技术的进步使这些方案变得脆弱.展望未来,唯一安全的密码哈希方案是迭代哈希,例如bcrypt和PBKDF2.有关完整讨论,请参阅Jeff Atwood的分析.

原答案2009:

我建议先在前面加上一个盐值到您的密码,然后按散列与像一个相当强劲的散列函数结果字符串SHA256.这可以抵御明显的(纯文本密码)和不那么明显(使用Rainbow表的攻击).

请记住,如果以这种方式存储密码,您将无法检索用户丢失的密码.他们只能重置密码.这是因为您将使用单向哈希.但是这种限制通常值得权衡更安全的密码存储系统.即使您的数据库遭到入侵,您的用户密码仍然非常困难,并且可能是攻击者无法恢复的.


这是处理密码的两种方法之一.另一个是; 别.使用OpenId/Facebook Connect/Live Auth /其他内容; 换一种说法; 让其他人存储密码.
推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有