php函数之crypt做用户密码验证
在研究一个系统的时候发现该系统的用户密码存储使用的是crypt(用户密码);但是当我新增一个密码为“123456”的用户时,发现crypt('123456')加密后与该系统数据库存放的加密字段对不上。
当我再次运行 crypt('123456') 的时候发现它的密码有发生了变化,这种同一个crypt函数加密出来的密码不一样如何做密码校验?简直崩溃。经过一番查找终于找到原因了,使用方法如下:
<?php $pwd='123456'; $pwd_en=crypt($pwd);// 存入数据库用户密码字段 $pwd_login='123456';//获取后面用户登录时的密码 $pwd_login_en=crypt($pwd_login,$pwd_en);// 用crypt(登录的密码, 数据库密码z字段作为sale) if($pwd_en==$pwd_login_en){ echo '登录成功'; }else{ echo '登录失败'; } ?>
encrypt函数第二个参数如果没有或者为空,那么encrypt($pwd)出来的是变化的,一旦加了第二个salt参数,只要$pwd不变加密后的字符就不变。
参考地址: https://bbs.csdn.net/topics/391967652?list=63031162
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/php函数之crypt做用户密码验证/
赞赏
微信赞赏支付宝赞赏
发表评论