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

总结

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

相关文章

  • win7/win10+vs2015+pcl1.8.0配置方案详解

    win7/win10+vs2015+pcl1.8.0配置方案详解

    这篇文章主要介绍了win7/win10+vs2015+pcl1.8.0详细配置方案,本文通过图文并茂的形式给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 网站被等恶意镜像的解决、反制措施详细教程

    网站被等恶意镜像的解决、反制措施详细教程

    这篇文章主要介绍了网站被等恶意镜像的解决、反制措施详细教程,需要的朋友可以参考下
    2016-10-10
  • VSCode实现文件嵌套功能的完全指南

    VSCode实现文件嵌套功能的完全指南

    你是否厌倦了在VSCode中面对满屏的配置文件、测试文件或编译产物?是否曾因查找关联文件而频繁滚动资源管理器?**文件嵌套(File Nesting)功能正是解决这一痛点的利器!本文将手把手教你如何通过VSCode的虚拟路径管理技术,需要的朋友可以参考下
    2025-04-04
  • VSCode设置默认浏览器打开的两种方式

    VSCode设置默认浏览器打开的两种方式

    在使用vscode编辑器的时候,如果我们不设置默认浏览器,那么直接打开的是IE浏览器,在进行页面调试的时候无疑是有点麻烦的,这篇文章主要给大家介绍了关于VSCode设置默认浏览器打开的两种方式,需要的朋友可以参考下
    2023-09-09
  • ChatGPT如何写好Prompt编程示例详解

    ChatGPT如何写好Prompt编程示例详解

    这篇文章主要为大家介绍了ChatGPT如何写好Prompt编程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 关于图片存储格式的整理(BMP格式介绍)

    关于图片存储格式的整理(BMP格式介绍)

    BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式
    2016-01-01
  • Node后端Express框架安装及应用

    Node后端Express框架安装及应用

    Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用和丰富的 HTTP 工具,如果你不会jJava or Python等后端,使用 Express可以帮助我们快速地搭建一个完整功能的网站
    2021-08-08
  • git提交出现commit提醒信息界面怎样退出

    git提交出现commit提醒信息界面怎样退出

    这篇文章主要介绍了git提交出现commit提醒信息界面怎样退出问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 关于HTTPS的加密流程详解

    关于HTTPS的加密流程详解

    这篇文章主要介绍了关于HTTPS的加密流程详解,http是为了解决http存在的问题而在http基础上加入了SSL/TSL,在HTTP/2中TCP三次握手后会进入SSL/TSL握手,当SSL/TSL建立链接后,才会进行报文的传输,需要的朋友可以参考下
    2023-07-07
  • Git 教程之远程仓库详解

    Git 教程之远程仓库详解

    本文主要介绍Git 远程仓库的知识,这里整理了相关资料,及命令详解,图文并茂的介绍该部分内容,有需要的小伙伴可以参考下
    2016-09-09

最新评论