温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

哈希密码为什么是PHP比md5更安全的加密方式

发布时间:2020-07-11 09:32:25 来源:亿速云 阅读:235 作者:Leah 栏目:编程语言

哈希密码为什么是PHP比md5更安全的加密方式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

                                                           传统加密方式:

md5(密码+盐值);

$passwordString='your password';//你的密码
$salt="your salt value";//盐值,增加复杂度(随机字串)
$md5Password=md5($passwordString.$salt);

从理论上来说,md5不可逆,算是一种比较安全的加密方式。但是我要提醒的是,md5早在04年的时候就被中国人破解。一旦被人拖库的化,密码泄漏的可能性极大。

现在推荐一种新的处理方式:

密码散列算法函数

password_get_info — 返回指定哈希(hash)的相关信息

password_hash — 创建密码的哈希(hash)

password_needs_rehash — Checks if the given hash matches the given options

password_verify — 验证密码是否和哈希匹配

PHP5.5引入了Password Hashing函数,内核自带无需安装扩展。在PHP5.4下测试了下也可是可以的,使用前最好确认一下你当前的环境是否支持这些函数。

Password Hashing主要提供了4个函数

//查看哈希值的相关信息
array password_get_info (string $hash)
 
//创建hash密码
string password_hash(string $password , integer $algo [, array $options ])
 
//判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 
 
boolean password_verify (string $password , string $hash)
//验证密码

代码演示:

$password = 'password123456';//原始密码
//使用BCRYPT算法加密密码
$hash_password = password_hash($password, PASSWORD_BCRYPT);
 
 
if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{
   echo "密码错误";
}

重要特征:

通过password_hash加密后的密码,使用字典方式很难破解,因为每次生成的密码都是不一样的。破解这种加密只能采用暴力破解。

最后提醒:

加密方法再好,原始密码设置的过于简单都容易被破解,设置复杂的密码才是王道。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI