PHP 密码 汇总
在中国的本土语言中进行改写:
在通过PHP加密密码时,应该使用password_hash()函数。
– password_hash()
使用强大的单向哈希算法生成新的哈希值。
据说password_hash()可以与crypt()兼容,并且可以使用crypt()生成的哈希值。
password_hash()是crypt()的简单包装函数,并且与现有的密码哈希兼容。
如果未指定盐值,password_hash()会生成随机的盐值,
一般来说,这是最简便且安全的方法。
并且在PHP 7.0.0及更高版本中,盐值选项已不推荐使用。
在这里,建议使用password_hash()函数。
-
- crypt()
-
- 文字列のhashを作成
- salt(ソルト)オプションを使用しないと安全ではない。結果として、暗号化する際にはpassword_hash()を推奨。
什么是盐?
在密码理论中,盐是指在哈希处理过程中添加的数据。
它用于减少已预先计算的哈希输出在与原始输入的对应表(彩虹表)之间进行解析的可能性。
简单来说,附加数据指的是一些小的额外信息,据说通过添加这些信息,可以极大地增加破解哈希的难度。因此,如果crypt()函数不使用盐值的话,就不要使用它!
- sha1
返回一个字符串的SHA1哈希值
大概就像是SHA1类型的东西
-
- md5
-
- 文字列のmd5hashを返す
- 多分sha5型みたいなもん
确认密码匹配
当我们进行加密后,需要使用password_verify()函数进行确认。
它可以用来确认密码和哈希值是否匹配。
如果密码和哈希值匹配,就返回true,否则返回false。
换句话说,它不会直接显示原始密码,而是返回一个正确或错误的结果。
您可以参考这个链接:https://www.php.net/manual/ja/function.password-verify.php
未加密状态的数据,指的是在加密前的原始数据。
总结
嗯,我們就老老實實地使用password_hash()和password_verify()進行一致性檢查吧。
参考这个链接:https://www.php.net/manual/ja/faq.passwords.php