[轉]關於”SHA1值”,”MD5值”

在以往提供光盤鏡像或其他大型軟件下載時,總是會同提供相應的SHA1值等信息,並建議朋友們使用驗證軟件純潔性:Hash V1.04 MD5驗證SHA1 CRC32工具進行驗證,來保證自己所下載的是官方原版!但很多朋友對此很疑惑,爲什麼SHA1值就能保證自己所下載軟件的純潔性呢?除了SHAI值以外(MSDN網站提供的效驗值只要是SHAI值),國內下載網站往往提供“MD5值”作爲效驗值,也可以用來驗證軟件的純潔性!對於MSDN提供資源的詳細信息中,還有一個很不起眼的“CRC”,那他又有什麼作用?下面蝦蝦就這些疑問,做下通俗簡單的介紹!

 

SHA1——

SHA1的規範名稱是SHAI-1,SHA1的全稱是Secure Hash Algorithm(安全散列算法),由美國“國家安全局(NSA)”和“國家標準與技術研究院(NIST)”聯合研發,用來保護敏感的未保密資料。在聯邦政府使用的同時,鼓勵商業、企業和其它組織使用,從而實現“數位”版權管理(SHA1具有全球唯一特性)。通俗的說,既一個軟件發生任何輕微的變化(如文件丟失,文件改寫)都會引起SHA1值發生變化!

MD5——

全稱是Message-Digest Algorithm 5(信息 – 摘要算法)。MD5使用的是哈希函數:不可逆加密算法。大家熟悉的典型應用,就是將“光盤鏡像或大型軟件”當作一個大文本信息,通過不可逆的字符串變換算法產生“字符”信息摘要,以此檢查、驗證信息傳輸的完整一致(MD5具有全球唯一特性)。通俗的說,既一個軟件發生任何輕微的變化(如文件丟失,文件改寫)都會引起MD5值發生變化!

CRC——

全稱是Cyclical Redundancy Check(循環冗餘校驗)。在各類下載的實際應用時:發送裝置首先要計算出CRC值並隨數據一同發送給接收裝置;接收裝置對下載數據進行計算並與收到的CRC相比較,從而確保數據傳輸的完整準確。CRC-32是CRC“分支”:一般用於Point-to-Point的同步傳輸。

    對於以上所說SHA1值具有全球唯一性,您可能不能明白,舉個例子,在一個軟件中,哪怕是隻有一個文件損壞,或被改寫,其SHAI值都會有着變化,其靈敏性嚴格保證了軟件的純潔性!大家可以做一個簡單的實驗,新建一個壓縮文件,在其中分別加入一些文件(數量不限),然後使用Hash V1.04 MD5驗證SHA1 CRC32工具驗證其SHAI值,再從壓縮文件中隨意刪除一個文件,在進行驗證,你就會發現SHA1值變了!大家也可以拿一個文本文檔進行,通過改變其中文字進行SHAI值驗證,進行對比!記得每次更改文本文檔後都要保存,你也會發現其SHA1值的不同!

 

轉自:http://blog.sina.com.cn/s/blog_4b44e2b10100kbla.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章