如何给MD5加上salt随机盐值

作者:daisy 时间:2022-01-13 05:32:37 

如何加点盐(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
0
投稿

猜你喜欢

  • Python爬虫简单运用爬取代理IP的实现

    2021-08-25 23:26:42
  • 在 Jupyter 中重新导入特定的 Python 文件(场景分析)

    2021-01-30 01:16:57
  • 怎样才能解决MySQL 5.0.16的乱码问题

    2008-12-03 15:58:00
  • django+xadmin+djcelery实现后台管理定时任务

    2023-12-15 03:05:52
  • 记录模型训练时loss值的变化情况

    2022-03-22 23:39:48
  • PHP缓存集成库phpFastCache用法

    2023-11-14 02:35:19
  • python可变对象,不可变对象详解

    2023-10-18 05:14:25
  • WEB页面工具语言XML产生背景

    2008-05-29 10:52:00
  • 详解python之简单主机批量管理工具

    2023-04-24 07:45:44
  • Python区块链Creating Miners教程

    2021-03-25 11:39:27
  • 图标设计常犯的10种错误

    2008-03-06 13:40:00
  • 新手该如何学python怎么学好python?

    2022-06-20 07:33:27
  • Python深度学习pytorch神经网络多输入多输出通道

    2022-05-10 11:10:06
  • pytorch实现手写数字图片识别

    2021-04-20 12:46:58
  • CSS自定义属性Expression

    2011-04-29 14:17:00
  • Win10下为VSCode配置LaTex编辑器的方法

    2023-08-27 17:20:07
  • XML教程:什么是XML及XML和HTML的区别

    2008-09-05 17:21:00
  • 使用pyhon绘图比较两个手机屏幕大小(实例代码)

    2022-12-25 02:55:30
  • 详解Python中Addict模块的使用方法

    2021-11-04 00:06:04
  • 20个Python常用技巧分享

    2023-10-21 22:10:21
  • asp之家 网络编程 m.aspxhome.com