您的位置:首页 > 其它

【信息安全】MD5加密浅析

2016-12-22 17:38 148 查看

     前段时间,网传京东泄露了几G的用户数据,后面又说用户数据是MD5加密的,让大家不要担心,改个密码之类云云。

     出于好奇,上网了解了一下这个MD5。

一、MD5加密方式是什么

     简单讲,MD5加密是一个用到哈希函数的复杂的不可逆的加密算法,只是作为了解的话,我们可以把它理解成是一个黑盒,我们输入不限位数的二进制信息,经过MD5加密,它会返回一个有限位数 32位的十六进制密文。

二、MD5的安全性如何

     刚刚说MD5是不可逆的,这意味着你不能根据密文通过逆运算去推出明文。至于为什么是不可逆的,就像知乎上一个深入浅出的回答说的,比如加法算法,你可以根据输入,4+4=8,却不能根据8,去推出它是4+4,因为可能是1+2+5,也可能是其他的无数可能性。  因为MD5的不可逆,导致它的解密方式只能用对撞。 如之前所说,MD5输出的是一个32位的十六进制密文,就是输出的可能性有16的32次方(记为N,反正N很大很大就是了)。简单讲,碰运气的话,每次去算都是1/N的概率,我们知道当N趋于无穷大的时候,这个1/N就趋于0了。也就是说,用遍历的话,估计算个几年也不见得算得出来。

     当然,时代是在不断进步的,一个加密算法被推行使用的同时,也会有很多的专家和黑客在努力去破解它,信息安全就是在这样的一个攻防的过程中不断发展的。

三、常见的所谓的MD5破解方式

     MD5的目前主要是应用在验证方面。    

     还有一些常见的所谓的MD5破解方式,大概就是先准备一张表,将密码明文和对应的MD5密文存着,完了在拿密文去对,取得相应的密码明文。理论上来说,这个表至少得有N条,包括所有的密文,才能涵盖所有密码明文,这在技术上是很难实现的,基本上不可能。所以只能破解一些常见的简单的密码。

     另外,在SQLSERVER中有内置加密函数,可以实现对数据的MD5加密。

SELECT  UPPER(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',CONVERT(VARCHAR, '123456', 112))), 3, 32))

 

 

      

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: