手机
当前位置:查字典教程网 >编程开发 >相关技巧 >如何给MD5加上salt随机盐值
如何给MD5加上salt随机盐值
摘要:如何加点盐(salt)?为了加强MD5的安全性,从而加入了新的算法部分即加盐值,加盐值是随机生成的一组字符串,可以包括随机的大小写字母、数字...

如何加点盐(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位的,无论谁拿到手都不知道该怎么破解了,在密码验证时只需要将原始密码用加密函数再加密一编进行匹配就行了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

【如何给MD5加上salt随机盐值】相关文章:

算法系列15天速成 第十一天 树操作(上)

绑定/约束 (binding)指两个东西之间的关联

算法系列15天速成 第七天 线性表【上】

Git 教程之基本操作详解

用户权限管理设计[图文说明]

深入理解浏览器的各种刷新规则

UTF-8 GBK UTF8 GB2312 之间的区别和关系介绍

在PB中如何让用户只能修改新增的数据

firefox 扩展开发技巧

Web 设计与开发者必须知道的 15 个站点

精品推荐
分类导航