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
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。