【MD5加密】

MD5加密

  • 什么是MD5密码
  • MD5用途
  • MD5特点
  • MD5加密
  • MD5解密
  • 总结
      • 那我们上面也已经提到啦,说MD5是可以进行解密或者说他是可以泄露密码等,所以我们还可以使用以下方法进行再次加密
    • 第一种:MD5+固定盐值
    • 第二种:MD5+随机盐值

什么是MD5密码

官方一点来讲的话就是一种数字摘要,它可以将任意长度的字符串转换成128位的散列值,也就是16字节的数字。被大众认为是使用最广泛的密码散列函数
通俗点来讲的话就是因为它可以产出128位(16字节)的散列值,用于确保信息传输完整一致

MD5用途

  • 用途最多的地方就是用户密码的加密【将用户输入的明文密码转换成一个128位的散列值,这个散列值可以用来验证用户输入的密码是不是正确的密码,从而不必将用户的密码铭文存储在服务器上,进而保护用户的密码安全】

  • 还有一个用途就是将文件完整性进行检查【检查文件是否被篡改】

MD5特点

  • 压缩性:无论数据多长,计算出来的MD5值长度相同。
  • 容易计算性:由原数据计算得出MD5值
  • 抗修改性:即使修改一个字节,激素拿出来的MD5值也会有巨大的差异
  • 抗碰撞性:知道数据和MD5 值,很小概率找到同样的MD5值相同的原数据

MD5加密

不可逆
【MD5加密】_第1张图片
以下是一个加密逻辑,那加密用到的是这个逻辑解密也肯定是喽,解密也是可以看这张图片的哦
【MD5加密】_第2张图片
md5中两个不同的明文加密得到相同的密文的几率是极低的,所以可以用以上逻辑判断

MD5解密

众所周知MD5它是一种不可逆的加密方式,所以不能解密,但是我们可以通过以下两种方法进行解密。

第一种:穷举法来进行解密。那么什么是穷举法嘞?它就是将所有可能的明文密码进行计算,并和加密后的密文进行一个对比,如果相等则表示找到了正确的密码,否则继续穷举。那又由于MD5密码长度是128位,所以穷举法非常耗时,而且有可能永远找不到正确的密码。
第二种:使用在线解密工具,这种工具可以将MD5密码提交到一个在线的数据库,然后这个数据库会把我们提交的MD5密码和它的库中的密码进行对比,如果有相同的,就可以获取到正确的密码啦。
那就简单的举一个例子吧:
第一步:找到以下网站

网站链接:MD5

第二步:进行注册·登录
【MD5加密】_第3张图片
第三步:登录完成之后就要输入你要解的密文,以下是我的密文示例
点击输入验证码 然后进行查询即可
【MD5加密】_第4张图片
当然这种方法也有局限性,只能解密出已经被解密过的MD5密码,而不能解密出新的MD5密码哦

总结

MD5的碰撞性,决定了存在两个不同的输入信息
因为MD5有相同的可能,所以不适用于安全性的认证

那我们上面也已经提到啦,说MD5是可以进行解密或者说他是可以泄露密码等,所以我们还可以使用以下方法进行再次加密

第一种:MD5+固定盐值

它是对于原来的明文拼接的字符串再一次的进行加密,如果这个字符串不泄露,那么密文就是安全的
【MD5加密】_第5张图片
将用户输入的密码按照相同的方法进行加盐值+加密,然后进行对比存储的密码是否是相同的就可以啦
那这样做也是有缺点存在的只要我们的固定盐值丢失啦,那么也就意味着密码被破解啦,也就相当于是先攻破盐值,然后进行对MD5加密的密码再进行破解,逐一攻破那也就相当于是Game Over┗|`O′|┛ 嗷~~

第二种:MD5+随机盐值

他就是给我们每一个用户的盐值都是不同的,那么不法分子是不是就没有办法进行破解全部。具体过程的话是这样的:【每当破解一个用户的密码,都需要按盐值进行巴黎怕【跑加密,直到找到密码,这会消耗大量的时间】
这其实就是相当于是拖延时间啦,但是好处还是有的,每一个用户的盐值都是不通过的,不会破解之后,丢失全部用户的密码,并且需要大量的时间来进行破解
【MD5加密】_第6张图片
以上这一篇就是我对于MD5加密的一个简单的了解,希望大家可以多多指教吖

你可能感兴趣的:(MD5加密)