sha比MD5更安全之外還有什么區別?
md5,sha1,sha256屬于密碼級散列函數,算法相對比較復雜,參與加密算法的過程中時也比較安全。crc只是專用的校驗散列函數,算法相對比較簡單。
安全級別不同也導致輸出長度
常用的CRC32 只輸出32bit
MD5輸出128bit
SHA1輸出160bit
SHA256輸出256bit
這也反映了復雜度和安全要求的遞增。
對安全要求的不同導致他們的“應用場景就不同”:
對密碼用CRC32就很不安全,普通密碼可以用MD5,但數字證書和數字簽名就法定必須用SHA256,
對普通數據效驗完整性也沒必要用SHA1,SHA256這樣計算相對復雜的算法,會慢很多。