目录
消息摘要算法
摘要算法,又称为哈希算法,表示:输入任意长度的数据,会输出固定长度的数据,主要用于验证数据的完整性。
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,所以不存在密钥的管理与分发问题,适合于分布式网络上使用。但由于其加密计算的工作量相当巨大(加密数据量大的数据时间会非常长),所以以前的这种算法通常只用于数据量有限的情况下的加密。
消息摘要算法分为 3 类:
- MD(Message Digest):消息摘要。
- SHA(Secure Hash Algorithm):安全散列。
- MAC(Message Authentication Code):消息认证码。
MD5
MD5(Message-Digest Algorithm 5,信息-摘要算法),无论加密多大的数据,经过运算后都会生成固定长度的数据,运算结果是使用 16 进制显示的 128bit 的二进制字符串,通常表示为 32 个十六进制数连成的字符串。
MD5 主要应用于确保信息传输完整一致,例如:应用在文档校验上,用来生成密钥检测文档是否被篡改。
MD5 的用途:
-
防止数据被篡改:比如发送一个电子文档,发送前,我先得到 MD5 的输出结果 A。然后在对方收到电子文档后,对方也得到一个 MD5 的输出结果 A。如果 A 与 B 一致就代表中途未被篡改。
-
防止直接看到明文:现在很多网站在数据库中存储用户密码的时候都是存储用户密码的 MD5 值。这样就算攻击者得到了数据库的用户密码的 MD5 值,也无法知道用户的密码。
-
防止抵赖(数字签名):这需要一个第三方认证机构。例如 A 写了一个文件,认证机构对此文件用 MD5 算法产生摘要信息并做好记录。若以后 A 说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是 A 写的了。这就是所谓的 “数字签名”。