2.1. 存储密码

未匹配的标注

使用内置的 密码哈希 函数对密码进行哈希和比较。

在将用户密码存储到数据库前进行哈希是保护用户密码的标准做法。许多常用的哈希算法,如 md5 甚至sha1,对于密码存储都是不安全的,因为 黑客能轻而易举地破解使用这些算法哈希后的密码

PHP 提供了一个内置的密码哈希库,该库使用 bcrypt 算法,是目前认为密码哈希的最佳算法。

范例

<?php
// 对密码进行哈希,$hashedPassword 将成为一个60个字符的字符串。
$hashedPassword = password_hash('my super cool password', PASSWORD_DEFAULT);

// 你现在可以在数据库中安全地存储$hashedPassword的内容了!

// 通过将用户输入的内容与我们的哈希值进行对比,确认用户是否提供了正确的密码
password_verify('the wrong password', $hashedPassword); // 返回 false

password_verify('my super cool password', $hashedPassword); // 返回 true

要点

  • 很多资料可能会建议你在哈希之前对密码 “加盐”。那是个很好的想法,但实际上 password_hash() 函数 已经对你的密码 “加盐” 了,这意味着你不需要自己手动 “加盐”。

扩展阅读

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/phpbestpractice...

译文地址:https://learnku.com/docs/phpbestpractice...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~