CRC、MD5、SHA1都是計算一個校驗值的,到底有何區別
CRC、MD5、SHA1都是計算一個校驗值的,到底有何區別
資料來源: https://mengkang.net/930.html
相同點:
CRC、MD5、SHA1都是通過對數據進行計算,來生成一個校驗值,該校驗值用來校驗數據的完整性。
不同點:
1. 算法不同。CRC採用多項式除法,MD5和SHA1使用的是替換、輪轉等方法;
2. 校驗值的長度不同。CRC校驗位的長度跟其多項式有關係,一般為16位或32位;MD5是16個字節(128位);SHA1是20個字節(160位);
3. 校驗值的稱呼不同。CRC一般叫做CRC值;MD5和SHA1一般叫做哈希值(Hash)或散列值;
4. 安全性不同。這裡的安全性是指檢錯的能力,即數據的錯誤能通過校驗位檢測出來。CRC的安全性跟多項式有很大關係,相對於MD5和SHA1要弱很多;SHA1的安全性最高。
5. 效率不同,CRC的計算效率很高;MD5和SHA1比較慢。
6. 用途不同。CRC一般用作通信數據的校驗;MD5和SHA1用於安全(Security)領域,比如文件校驗、數字簽名等。