md5和password_hash谁跟牛X

编程

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

以上是 md5和password_hash谁跟牛X 的全部内容, 来源链接: utcz.com/z/512332.html

回到顶部