加密 - php 的password_hash 原理是什么
巴扎黑
巴扎黑 2017-04-11 10:14:26
[PHP讨论组]

如题,php 中的 password_hash 加密密码时如果采用随机盐值, 那么验证密码的时候是如何确定密码对应的盐值的

巴扎黑
巴扎黑

全部回复(4)
黄舟


注意 password_hash() 返回的哈希包含了算法、 cost 和盐值。 因此,所有需要的信息都包含内。使得验证函数不需要储存额外盐值等信息即可验证哈希。
<?php
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('test', $hash)) {

echo 'Password is valid!';

} else {

echo 'Invalid password.';

}
?>

ringa_lee

密码其实可以分开两段,前面一段就是salt

阿神

很简单。。。需要把salt一同存到数据库。。。

阿神

通过password_verify()来验证,传入密码和存储的哈希值,若正确返回一个布尔值 TRUE,否则返回 FALSE

if (password_verify($password, $hash)) {
    // Correct Password
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号