php生成用户密码的几种方式
Posted autofelix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php生成用户密码的几种方式相关的知识,希望对你有一定的参考价值。
〝 古人学问遗无力,少壮功夫老始成 〞
php生成用户密码的几种方式,在用户系统中,生成用户的密码是很重要的,而简单的密码必然给一些不法用户开了一些门户,这里列出几种常见的密码生成方式,仅供参考,常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。你必须特别努力,才能显得毫不费力。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。
目录
一、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生成用户密码的几种方式的主要内容,如果未能解决你的问题,请参考以下文章