資料摘要演算法知識補充

2021-06-28 00:15:31 字數 1490 閱讀 4436

資料摘要演算法是密碼學演算法中非常重要的乙個分支,它通過對所有資料提取指紋資訊以實現資料簽名、資料完整性校驗等功能,由於其不可逆性,有時候會被用做敏感資訊的加密。資料摘要演算法也被稱為雜湊(hash)演算法或雜湊演算法

crc(cyclic redundancy check,迴圈冗餘校驗)演算法出現時間較長,應用也十分廣泛,尤其是通訊領域,現在應用最多的就是 crc32 演算法,它產生乙個4位元組(32位)的校驗值,一般是以8位十六進製制數,如fa 12 cd 45等。crc演算法的優點在於簡便、速度快,嚴格的來說,crc更應該被稱為資料校驗演算法,但其功能與資料摘要演算法類似,因此也作為測試的可選演算法。

在 winrar、winzip 等軟體中,也是以 crc32 作為檔案校驗演算法的。一般常見的簡單檔案校驗(****** file verify – sfv)也是以 crc32演算法為基礎,它通過生成乙個字尾名為 .sfv 的文字檔案,這樣可以任何時候可以將檔案內容 crc32運算的結果與 .sfv 檔案中的值對比來確定此檔案的完整性。

與 sfv 相關工具軟體有很多,如magicsfv、moosfv等。

這是應用非常廣泛的乙個演算法家族,尤其是 md5(message-digest algorithm 5,訊息摘要演算法版本5),它由md2、md3、md4發展而來,由ron rivest(rsa公司)在2023年提出,目前被廣泛應用於資料完整性校驗、資料(訊息)摘要、資料加密等。md2、md4、md5 都產生16位元組(128位)的校驗值,一般用32位十六進製制數表示。md2的演算法較慢但相對安全,md4速度很快,但安全性下降,md5比md4更安全、速度更快。

目前在網際網路上進行大檔案傳輸時,都要得用md5演算法產生乙個與檔案匹配的、儲存md5值的文字檔案(字尾名為 .md5或.md5sum),這樣接收者在接收到檔案後,就可以利用與 sfv 類似的方法來檢查檔案完整性,目前絕大多數大型軟體公司或開源組織都是以這種方式來校驗資料完整性,而且部分作業系統也使用此演算法來對使用者密碼進行加密,另外,它也是目前計算機犯罪中資料取證的最常用演算法。

與md5 相關的工具有很多,如 winmd5等。

sha(secure hash algorithm)是由美國專門制定密碼演算法的標準機構—— 美國國家標準技術研究院(nist)制定的,sha系列演算法的摘要長度分別為:sha為20位元組(160位)、sha256為32位元組(256位)、 sha384為48位元組(384位)、sha512為64位元組(512位),由於它產生的資料摘要的長度更長,因此更難以發生碰撞,因此也更為安全,它是未來資料摘要演算法的發展方向。由於sha系列演算法的資料摘要長度較長,因此其運算速度與md5相比,也相對較慢。

目前sha1的應用較為廣泛,主要應用於ca和數字證書中,另外在目前網際網路中流行的bt軟體中,也是使用sha1來進行檔案校驗的。

ripemd是hans dobbertin等3人在對md4,md5缺陷分析基礎上,於2023年提出來的,有4個標準128、160、256和320,其對應輸出長度分別為16位元組、20位元組、32位元組和40位元組。

tiger由ross在2023年提出。tiger號稱是最快的hash演算法,專門為64位機器做了優化。

摘要演算法

C C 資料對齊知識摘要

include using std cout using std endl include using std setw using std left 資料對齊 環境 windows 2003 intel celeron cpu 2.53ghz vc6.0 資源參考 linux 核心設計與實現 第二...

資料庫 知識 補充

資料庫 ddl dml dcl dql 區別 dql dml ddl dcl的概念與區別 csdn部落格 dml ddl dcl區別 csdn部落格 ddl dml和dcl的區別與理解 mssql 指令碼之家 索引mysql單列索引和組合索引的建立及區別介紹 關於mysql建立索引復合索引索引型別 ...

python摘要 python 摘要演算法

一 概述 摘要演算法主要特徵是加密過程不需要金鑰,並且加密的資料無法解密,只有輸入相同的明文資料經過相同的摘要演算法才能得到相同的密文。摘要演算法主要應用在 數字簽名 領域。接下來會講述rsa公司的md5演算法和sha 1演算法。二 原理 通過乙個函式,把任意長度的資料轉換成乙個長度固定的資料串 通...