首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >md5和password_hash谁跟牛X

md5和password_hash谁跟牛X

作者头像
双面人
发布2020-02-11 12:15:44
6960
发布2020-02-11 12:15:44
举报
文章被收录于专栏:热爱IT热爱IT

md5自不必说,想必所有phper都用过,但另一个加密函数不知道你见过没有

他就是password_hash();

加密方式更全面.使用起来也比md5+salt这种方式要简洁很多,最主要的是难破解,因为它每时每刻都在变动

它的使用方式大致是这样

1. 用户注册时提交过来密码,我们对用户密码进行加密,这里选择password_hash进行加密

2. 加密之后,将加密好的密码存储到数据表中

3.用户再次登录时,我们从表中取出密码,并使用password_verify函数进行校验,查看两种密码是否相同

简单的使用:

    $paaa = password_hash("rasmuslerdorf",PASSWORD_DEFAULT);            //设置密码加密     $hash = '$2y$10$2GAiKeqFxxbMUh4iBqRyPOhlhKL7T7kquYQl7u5gGAscKISD9piAm'; //这个是上面加密后得到的值     if (password_verify('rasmuslerdorf1',$hash)) {           //验证密码是否和散列值匹配              echo '对';        } else {      echo '错';        }

如果两次输入的密码不一样,就会输出密码错误

但却存在以下问题

1. 版本要求  php版本必须5.5+ (如果做接口对接,要求双方php版本都在5.5以上,会不会有一些不太现实)

2. 通过password_hash加密的密码基本只能通过php的函数password_verify来校验(这样和其他语言交互时会不会很麻烦呢)

所以呢,如果php自家用,我感觉password_hash真的是一个不错的选择,但如果和其他语言或者外界交互的话,可能就会出现一些小麻烦

具体参数详解: password_hash();、

https://www.php.net/manual/zh/function.password-hash.php

password_verify()

https://www.php.net/manual/zh/function.password-verify.php

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档