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()
函数 已经对你的密码 “加盐” 了,这意味着你不需要自己手动 “加盐”。
扩展阅读
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: