如何给MD5加上salt随机盐值

 更新时间:2016年11月25日 11:14:41   投稿:daisy  
不知道大家知不知道,在开发的时候如果直接给密码散列,黑客可以通过查散列值字典(例如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位的,无论谁拿到手都不知道该怎么破解了,在密码验证时只需要将原始密码用加密函数再加密一编进行匹配就行了。

总结

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

相关文章

  • 算法系列15天速成 第九天 队列

    算法系列15天速成 第九天 队列

    可能大家都知道,线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊
    2013-11-11
  • Wireshark TS系统吞吐慢问题解决方案

    Wireshark TS系统吞吐慢问题解决方案

    这篇文章主要为大家介绍了Wireshark TS系统吞吐慢问题解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 在WordPress中创建自定义页面模板方法详解

    在WordPress中创建自定义页面模板方法详解

    在本文中,我们将学习如何在 WordPress 中创建自定义页面模板,以及我们如何将自定义模板分配给 WordPress 中的特定页面或页面组,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • 彻底解决页面文字编码乱码问题

    彻底解决页面文字编码乱码问题

    在HTML页面中、Javascript脚本中、以及XML数据传输中,因为编码导致的问题不计其数。
    2009-10-10
  • 详解git合并冲突解决方法

    详解git合并冲突解决方法

    这篇文章主要介绍了详解git合并冲突解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • webp 格式图片显示异常分析及解决方案

    webp 格式图片显示异常分析及解决方案

    WebP,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,能节省大量的服务器带宽资源和数据空间,这篇文章主要介绍了webp 格式图片显示异常分析及解决方案,需要的朋友可以参考下
    2023-04-04
  • 解决Fiddler在win7系统下的安全证书问题

    解决Fiddler在win7系统下的安全证书问题

    今天小编就为大家分享一篇关于解决Fiddler在win7系统下的安全证书问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • npm script 的文件监听和自动刷新的命令详解

    npm script 的文件监听和自动刷新的命令详解

    文件监听的作用是为了实现自动化,释放双手和精力,提高效率,让开发者更加关注于开发。这篇文章主要介绍了npm script 的文件监听和自动刷新,需要的朋友可以参考下
    2019-06-06
  • Git基本常用命令

    Git基本常用命令

    本文主要介绍了Git基本常用命令。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Visual Studio安装git插件的方法步骤

    Visual Studio安装git插件的方法步骤

    这篇文章主要介绍了Visual Studio安装git插件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论