PHP开发者对md5()这个函数是熟悉不过了,很多开发者都使用md5('abc123')对用户密码进行加密处理,这样做没有错,但是安全性还是很低的,因为很多网站的用户数据都是用md5进行加密处理的,所以就发生了撞库事件,最典型的就是前些年12306火车票网站上的用户信息泄露事件。很多人在多个网站使用相同的密码,黑客将A站的用户密码和B站的密码对比发现是相同的,于是A站的密码就登录上了B站。另外一个,md5算法很早就能破解了,所以单单md5处理是不安全的。

那么我们可以使用md5加salt来增强加密后的密码安全性,salt及盐值,这个值要随机生成,可在用户注册的时候和密码一起生成并保存到数据库中,用户登录验证的时候再把密码和盐值一起组合验证。

上面的代码将密码和盐值以及常量混合,再md5的到一个复杂的加密后的字符串,然后将加密后的字符串$md5pass和盐值$salt保存到数据表中,验证的时候再拿出来,按照同样的方式组合,如果组合加密后的字符串与数据表中的$md5pass值一样,那么就验证成功了。总的来说设置相对复杂的密码加盐处理后破解难度还是很大的。

MD5加盐与安全的更多相关文章

  1. md5加密,md5加盐加密和解密

    package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...

  2. Java使用MD5加盐进行加密

    Java使用MD5加盐进行加密    我使用的方法是导入了md5.jar包,就不需要再自己写MD5的加密算法了,直接调用方法即可 点击下载md5包 import com.ndktools.javamd ...

  3. 一种简单的md5加盐加密的方法(防止彩虹表撞库)

    md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...

  4. MD5 加盐(Java)

    本文转载自:https://blog.csdn.net/dingsai88/article/details/51637977 jar:https://pan.baidu.com/s/1-8JaRoUt ...

  5. MD5加盐加密

    package com.chauvet.utils; import java.security.NoSuchAlgorithmException; import java.util.Random; / ...

  6. 用户角色权限查询添加bug集锦 用户密码加密 MD5 加盐 随机盐 spring的加密bcrypt

    package cn.itcast.encode; import org.apache.commons.lang3.RandomStringUtils; import org.springframew ...

  7. MD5加盐,实现一人一密

    理论上md5是不可逆的,而且MD5本来也不是作加密使用,而是用来校验数据的完整性,只是因为其不可逆且稳定.快速的特点,被广泛用于对明文密码的加密. 至今仍然后很多开发人员相信MD5的保密性,也许因为他 ...

  8. MD5 加盐加密

    一.概述 MD5(Message Digest  Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法. 在一般的项目中都会有登录注册功能,最简单的, ...

  9. 关于MD5加盐使用

    md5 是一种数据加密,例子是对123456 进行了两次加盐 第一次是 inputPassToFormPass   salt是固定的 1a2b3c4d 第二次是  formPassToDBPass s ...

随机推荐

  1. Android 培训准备资料之project与module的区别(1)

    project和module的区别? 现在我们来看看在Android studio中怎样新建一个project (1)file->new->new project. Application ...

  2. WorkFlow四:添加用户决策步骤

    沿用之前的例子,做个用户决策步骤. 1.事物代码SWDD: 进入抬头,点击类的绑定按钮. 2.选择类的绑定,点击继续. 这是类的绑定已经变色了.这时候点击保存,再点击返回到图片逻辑流界面. 3.在发送 ...

  3. C# 读取Excel文件数据

    1.首先需要在管理NuGet程序包中添加外部包:ExcelDataReader,添加好后,不要忘记在命名空间那里引用. 2.定义文件流,将文件流传入IExcelDataReader类型的对象excel ...

  4. Consul 知识点

    平时开发时,一般使用consul dev模式,开发模式下kv存储不会持久化存储,全在内存中(重启consul就丢了!),所以一般建议yml配置文件内容,在项目中单独存一个文件,启动调试时,直接把配置文 ...

  5. Python问题:SyntaxError: Non-ASCII character '\xe2' in file

    SyntaxError: Non-ASCII character '\xe2' in file意思是说,在文件中存在非ASCII字符: ASCII是8位即一个字符,一共256个字符,随着计算机的发展, ...

  6. mysql的基本数据类型里几个int如下:TINYINT SMALLINT  MEDIUMINT  INT或INTEGER   BIGINT

    mysql的基本数据类型里几个int如下:类型           大小 范围(有符号) 范围(无符号) 用途 TINYINT  1字节   (-128,127)    (0,255) 小整数值 SM ...

  7. centos7编译安装pgbouncer

    1.下载pgbouncer程序包和libevent依赖包 wget https://github.com/libevent/libevent/releases/download/release-2.1 ...

  8. mysql之字段的修改,添加、删除,多表关系(外键),单表详细操作(增删改)

    字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 ...

  9. 达信:深度解读COSO新版企业风险管理框架(ERM)

    http://www.sohu.com/a/124375769_489979 2016年6月,美国反欺诈财务报告委员会(The Committee of Sponsoring Organization ...

  10. CSS布局对齐的小技巧

    类似以上这种对齐怎么做? 很简单,上面是的污水开始的位置是由于被"能源种类"顶着,下面没有字怎么办?最差的办法就是用margin-left,因为在不同的机器上,可能会出现兼容性问题 ...