CRC與MD5的異同

2022-06-15 14:42:11 字數 911 閱讀 5460

php中crc32的用法:

crc32 — 計算乙個字串的 crc32 多項式

生成 string 引數的 32 位迴圈冗餘校驗碼多項式……:

這句話從英文翻譯過來的,不正確,準確的說應該是這麼理解:

以32位迴圈冗餘校驗多項式演算法,來計算乙個字串,返回乙個(可能帶符號的)整數。

使用方法:

這個函式的功能類似於md5演算法、sha1演算法加密。這個函式的使用過程中,需要多考慮取返回的整數的絕對值就可以了。

至於如何能做到檢查傳輸的資料是否完整:

參考md5的常見使用場景。

32位迴圈冗餘校驗多項式:這個是乙個數學演算法,在php的原始碼內可以看到。你可以當作他是乙個md5演算法的數字版。

經常有人問,說crc、md5、sha1都是計算乙個校驗值的,到底有何區別

相同點:

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要弱很多;md5的安全性很高,不過大概在04年的時候被山東大學的王小雲破解了;sha1的安全性最高。

5. 效率不同,crc的計算效率很高;md5和sha1比較慢。

6. 用途不同。crc一般用作通訊資料的校驗;md5和sha1用於安全(security)領域,比如檔案校驗、數字簽名等。

初識md5碰撞與crc32碰撞

現在是晚上23 29。寫這篇文章呢,是因為早些時候我胃疼,是因為涼導致的胃疼。涼呢喝了一些熱水,喝完熱水胃倒是不疼了,但是由於我喝的是茶葉開水,於是就導致失眠了。想來想去這漫漫長夜也沒意思,於是就決定寫這個了。0x01 這個md5碰撞到底是個什麼東西呢,這是王小雲發明的一種破解md5摘要演算法的的一...

MD5加密與解密

using system using system.collections.generic using system.linq using system.text using system.security.cryptography using system.io namespace encrypt...

MD5加鹽與安全

php開發者對md5 這個函式是熟悉不過了,很多開發者都使用md5 abc123 對使用者密碼進行加密處理,這樣做沒有錯,但是安全性還是很低的,因為很多 的使用者資料都是用md5進行加密處理的,所以就發生了撞庫事件,最典型的就是前些年12306火車票 上的使用者資訊洩露事件。很多人在多個 使用相同的...