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

Posted autofelix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php生成用户密码的几种方式相关的知识,希望对你有一定的参考价值。

〝 古人学问遗无力,少壮功夫老始成 〞

php生成用户密码的几种方式,在用户系统中,生成用户的密码是很重要的,而简单的密码必然给一些不法用户开了一些门户,这里列出几种常见的密码生成方式,仅供参考,常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。你必须特别努力,才能显得毫不费力。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。

目录

一、md5密码 

二、hash密码


一、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

 

以上是关于php生成用户密码的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

PHP处理密码的几种方式

PHP 加密的几种方式

详解PHP处理密码的几种方式(收藏)

PHP网站常见的几种攻击方式

php连接数据库,php连接mysql并查询的几种方式

PHP生成不重复随机数的几种方法