请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,auth 的用户验证加密方式是什么呀,为什么用bcrypt()加密,结果也变?

老师,auth 的用户验证加密方式是什么呀,为什么用bcrypt()加密,结果也变?

注册时候用bcrypt()来加密密码,但是用auth认证的时候发现密码匹配不正确,

后面单独用bcrypt()才发下输出结果在一直变化。

老师,这个应该怎么处理

正在回答 回答被采纳积分+3

1回答

轩脉刃 2018-08-08 10:29:56

bcrypt加密算法就是每次加密的结果都不一样,这样不容易被破解。验证加密后的密码对不对,你可以使用password_verify进行验证。你现在的问题实际上是认证的时候发现密码匹配不正确,感觉不是密码问题,还是逻辑问题,你是在普通用户登陆还是admin用户登陆的时候发现有问题的?应该检查下你的Auth配置文件是否配置正确

0 回复 有任何疑惑可以回复我~
  • 提问者 ericdemon #1
    您好,老师,最近在忙工作上的事情没有及时回复您,是这样的
    因为我的小项目里是通过给密码加前缀然后加一个md5 32位固定长度的不可逆加密方式,验证方法自然就是去比较最终结果是否一致,
    但是bcrypt的加密算法直接有尝试去读源码,可能是我经验不够,没有看懂,
    但是我目前的了解好像这个加密是通过AES-256-CBC的加密方式配置文件的APP_KEY=base64:fkUJhZx5uNzyW+UMJOP7/7E8d5HPSAY/9OwTYK1e2mg=作为key来加密的,但是每次会变 那我就觉得很奇怪,key固定 ,加密方式也固定,怎么就会自动变化呢?
    老师,您说的password_verify进行验证,它的第二个参数hash应该是什么呢,
    回复 有任何疑惑可以回复我~ 2018-08-11 23:17:14
  • 轩脉刃 回复 提问者 ericdemon #2
    password_verify第一个参数是你真实密码,第二个参数是你的加密串。至于不一样,你可以看password_hash的文档:省略此值后,password_hash() 会为每个密码散列自动生成随机的盐值。这种操作是有意的模式。
    回复 有任何疑惑可以回复我~ 2018-08-12 09:33:23
  • 提问者 ericdemon 回复 轩脉刃 #3
    老师,那我如果用bcrypt加密的话 最后是用password_verify去解密?
    回复 有任何疑惑可以回复我~ 2018-08-13 00:12:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信