md5就是一种信息摘要加密算法。
MD5英文名叫MD5 Message-Digest Algorithm,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
加密算法很好理解,那什么叫摘要算法呢?
摘要算法又叫哈希算法或者散列算法。它是通过一个固定的函数,把任意长度的数据转换为一个长度固定的字符串。(通常字符串长度为16字节)
举个形象的例子
今天我写了一篇文章,内容是“《MD5是什么意思》,MD5的作用,MD5性能如何,巴拉巴拉”。把上面的文字用MD5算法一加密,就会得到“135042a518064405”,这么一串字符串。
任何人只要用MD5加密一次这文章,看看得到的加密串是不是上面加密得到的加密串,就可以知道这个文章有没有被人串改。
这个功能其实很像古代的一个信封外的腊印,一旦这个腊印破了或者坏了,就知道这封信已经被其他人窥探过了。
其实,同一个文件或字符,在任何语言、环境里计算出来的md5值都是相同的,因为全世界的MD5摘要算法都一样。只有在极特殊条件下,md5值会出现碰撞,但是这个出现的概率非常非常小,几乎可以忽略不计。