gpt4 book ai didi

php - 最佳实践 : safest method to store passwords in a table?

转载 作者:行者123 更新时间:2023-12-03 00:35:03 25 4
gpt4 key购买 nike

我正在使用 PHP。我曾经使用 native mysql函数password()来存储密码。有人告诉我,password() 不再安全了。在 PHP 中存储密码的最佳方法是什么?是MD5吗?

最佳答案

2016 年更新答案:

PHC 的获胜者(密码哈希竞赛)为 Argon2 。截至 2016 年,使用 Argon2 对密码进行哈希处理是最佳实践。

PHC ran from 2013 to 2015 as an open competition—the same kind of process as NIST's AES and SHA-3 competitions, and the most effective way to develop a crypto standard. We received 24 candidates, including many excellent designs, and selected one winner, Argon2, an algorithm designed by Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich from University of Luxembourg.

We recommend that use you use Argon2 rather than legacy algorithms.

reference implementation is available on GitHub .

2012 年更新答案:

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

2009 年原始答案:

我建议首先在前面加上 salt值为您的密码,后跟 hashing具有相当强的哈希函数的结果字符串,如 SHA256 。这可以防止明显的(纯文本密码)和不那么明显的(使用 Rainbow tables 的攻击)。

请记住,如果您以这种方式存储密码,您将无法找回用户丢失的密码。他们只能重置密码。这是因为您将使用 one way hash 。但为了更安全的密码存储系统,这种限制通常值得权衡。即使您的数据库遭到破坏,攻击者恢复您的用户密码仍然非常困难,而且可能不切实际。

关于php - 最佳实践 : safest method to store passwords in a table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com