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慢。
---------------------
雞蛋卷啊卷