Message Digest(信息摘要,也被称为cryptographic checksum校验和加密、cryptography hashcode哈希加密)git
就是一串数字,经过一个很难被逆向推到的公式 算出来的hash code。算法
将不肯定长度的输入(文件大小各异)方程式,而后得出固定大小的Hash code。通常结果的长度是128bit或512bit。安全
有两个特性:加密
1.这个方程式没法被预测和反推。也就说经过结果没法反推出输入,128bit有1.7X10的38次方中可能。以现有技术是不可能推测出来的。.net
2.输入方一个小的改动,将带来巨大的输出改动。改一个bit的输入,致使近乎一半的输出改变。code
然而,经过Message Digest 能够肯定文件没有被改动,但没法肯定是谁发送的。blog
Digital Signature(数字签名)文档
Message Digest为可信赖的数字签名提供了一半的解决方法,另外一半是Public Key Encryption 公钥加密算法。get
公钥加密算法是:hash
Public key:用于加密信息的key,一般普遍的传播。
Secret key(Private Key):用于解密的接收到的信息,一般本身保留。
将Public Key Encryption作一下反转,将解密的Key公布,将加密的Key本身保留。这样发布方签名发布的信息,你们均可以用发布方的解密Key解出来,还原他。证实是发布发送的。
特色是:
1.Integrity (完整性)确保信息没有被改变
2.Authentication能够验证是谁发送的信息
用法
理论上对整个文件进行签名,既能够验证发送方,又能够验证文档的完整性。这样就不必使用Message Digest,可是Digital Signature的运算特别的耗时、复杂。因此咱们就使用快速的Message Digital生成固定长度的Hash Code,而后在对Hash Code签名。这样既能够保证文档的完整性,又能够保证权威性、又有效率。
而Message Digital的
经常使用Message Digest算法
MD二、MD四、MD5:
MD5是最经常使用的。均产生128bit的数字长度。MD2速度慢,以后有了更快速的MD4,因MD4安全性问题,出了MD5。MD5比MD4慢点。
简单说用MD5。目前最新,均衡性最好。
SHA:
Secure Hash Algorithm,和MD4很像,不一样点是产出为160bit而不是128bit。
HAVAL:
MD5的改进版,能够产出不一样的长度数据,从92bit到256bit。因此在安全性与速度上你能够本身调节。
SNEFRU:
产出128bit或256bit两中长度数据,比MD5和HAVAL慢。
---------------------
鸡蛋卷啊卷