[學習筆記] 雜湊函式和 SHA-256
阿新 • • 發佈:2022-03-09
雜湊函式(或雜湊演算法,又稱雜湊函式,英語:Hash Function)是一種從任何一種資料中建立小的數字“指紋”的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立一個叫做雜湊值(hash values, hash codes, hash sums或hashes)的指紋。雜湊值通常用一個短的隨機字母和數字組成的字串來代表。好的雜湊函式在輸入域中很少出現雜湊衝突。
原始資料 ---輸入---> 雜湊函式 ---輸出---> “指紋”資料
- 是一種資料轉換函式,將輸入(原資料)對映成輸出(索引)
- 設計良好的雜湊函式,對不同的輸入,會得到不同的輸出
- 壓縮輸入資料,一般會生成固定長度的輸出
- 是不可逆的,是輸入到輸出的“單向”函式
雜湊函式的概念非常寬泛,是一類演算法的統稱,常見的雜湊函式有MD5
、SHA
等
SHA
(Secure Hash Algorithm,安全雜湊演算法)是一個密碼雜湊函式家族,由美國國家安全域性(NSA)設計,並由美國國家標準與技術研究院(NIST)釋出,是美國的政府標準。包括 SHA-0
系列、SHA-1
系列、SHA-2
系列和SHA-3
系列。SHA-256
是SHA-2
系列函式之一
對於SHA-256
- 無論輸入多長,都輸出
64
個字元,共32
位元組(byte),256
位(bit) - 輸出只包含數字
0
~9
和字母A
~F
,大小寫不敏感
可以使用線上Hash計算工具體驗一下。文字Hi Blockchain!
的SHA-256
結果為
475025F51CB88D38C3FD15FCBEBA4E33BCF8ACD5173ACBED91439FFB0FA9D8B2
轉 https://zhuanlan.zhihu.com/p/34361199