没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
如何给如何给MD5加上加上salt随机盐值随机盐值
不知道大家知不知道,在开发的时候如果直接给密码散列,黑客可以通过查散列值字典(例如MD5密码破解网
站),得到某用户的密码。但如果加上salt后就会难上很多,即便是你获得了其中的salt和最终密文,破解也是
相当麻烦的。下面跟着小编通过这篇文章来一起学习学习吧。
如何加点盐如何加点盐(salt)??
为了加强MD5的安全性,从而加入了新的算法部分即加盐值,加盐值是随机生成的一组字符串,可以包括随机的大小写字
母、数字、字符,位数可以根据要求而不一样,使用不同的加盐值产生的最终密文是不一样的:
1).首先我们得到的是明文的hash值
2).进行计算获取MD5明文hash值
3).随机生成加盐值并插入
4).MD5插入加盐值得到的hash
5).得到最终的密文
看一个简单的加看一个简单的加salt函数:函数:
/**
* MD5加SALT函数
* by http://www.phpddt.com
*/
function do_hash($psw) {
$salt = 'fdsafagfdgv43532ju76jM'; //定义一个salt值,最好够长,或者随机
return md5($psw . $salt); //返回加salt后的散列
}
注意:注意:
如果你是随机生成salt值就得放入数据库,不要用time()时间戳啥的,那样别人不就可以枚举了嘛,如果你嫌麻烦,可以配置一
个复杂的salt值,如上,两种方法各有优点。
另一种复杂点加密方法:另一种复杂点加密方法:
function PassCrypt($ManagerPassword)
{
$ManagerPassword=md5($ManagerPassword);
$Salt=substr($ManagerPassword,-1,3);
$ManagerPassword=crypt($ManagerPassword,$Salt);
Return $ManagerPassword;
}
这样先把密码用MD5加密,然后截取其结果的一段,再用crypt加密,因为这两个加密函数都是单向的,所以就没有人能破解
的了了,而且加密后的最终密码是13位的,无论谁拿到手都不知道该怎么破解了,在密码验证时只需要将原始密码用加密函
数再加密一编进行匹配就行了。
总结总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
资源评论
weixin_38694355
- 粉丝: 3
- 资源: 964
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功