第九十章 红与黑的碰撞·迷雾 10
好书推荐:
快穿之躺赢的女配
继承亿万家产之后
拒嫁天王老公
人在雾隐村,从叛逃开始
总裁强势爱:染指,小甜妻!
尤念的恋爱册
豪门游戏:公爵,你好!
每天被迫和九千岁秀恩爱
大佬的女王又来打脸了
网红西点店的老板娘
邹道所看到的那个文本“MD5doc=37b8c2c1093dd0fec281a9d9ac840513”,就是MD5在实际操作中的典型应用,即对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。
上述文本这就是doc文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。
逆鳞用“指纹”打比方向邹道简要描述了MD5工作过程:地球上任何人都有自己独一无二的指纹,这常常成为司法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。
逆鳞说到这,还补充了两点,某些软件下载站点的某软件信息中经常可以看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如WindowsMD5Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。
另外,除了校验和防篡改,MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。