MD5是干嘛用的?举两个例子基本就了解了

简单一句话:

MD5可以为任何文件产生一个MD5值,好比是一个独一无二的“指纹”,

如果任何人对文件做了任何改动,其MD5值都会发生变化。

这样就能知道文件是否被篡改。

比如:

MD5也可以对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。

举个具体的例子,将一段话写在一个叫 readme.txt文件中,

并对这个readme.txt产生一个MD5的值并记录在案,

然后这个文件传播给别人,

别人如果修改了文件中的任何内容,

再对这个文件重新计算MD5时就会发现:两个MD5值不相同。

这样就可以判断文件被篡改了。这就是所谓的数字签名。

再比如:

在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。

当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,

然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。

这样,系统在并不知道用户密码的明码的情况下也可以确定用户登录系统的合法性。

还可以避免用户的密码被具有系统管理员权限的用户知道。

这是因为:

通过仅仅通过MD5值(128bit大整数)反推原始字符串是极其困难的。