php生成用户密码的几种方式

时间:2019-07-17作者:klpeng分类:IT综合浏览:2164评论:0

一、md5密码 

  • 这种应该算是最常见的密码加密方式了

  • md5是属于非对称加密中的一种,这种密码方式其实说安全也很安全,而因为哈希碰撞的存在,会导致可能会出现漏洞

  • 最好是在加密的时候,加入混淆字符串,如下所示

<?php
//加密
function md5_password($password, $hash = 'autofelix_')
{
    return md5($hash . $password);
}

//验证
$userinfo = /** 查询用户信息 **/;

if ($userinfo['password'] !== md5_password($password)) {
    /** 密码错误逻辑 **/
}

/** 密码正确,继续往后走逻辑 **/


二、hash密码

  • 这种加密方式主要使用单向散列算法创建密码的散列

  • PASSWORD_DEFAULT 使用 bcrypt 算法

  • PASSWORD_BCRYPT 使用 CRYPT_BLOWFISH 算法创建散列

  • PASSWORD_ARGON2I 使用 Argon2 散列算法创建散列

  • 这种密码加密方式数据库里储存结果的列可超过60个字符,所以varchar长度请设置255

<?php
//加密
function generatePassword($password)
{
   return password_hash($password, PASSWORD_DEFAULT);
}

//验证
function verifyPassword($password, $hashPassword)
{
   return password_verify($password, $hashPassword);
}

//加密结果:$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a


 

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢