1. 程式人生 > 其它 >[學習筆記] 雜湊函式和 SHA-256

[學習筆記] 雜湊函式和 SHA-256

雜湊函式(或雜湊演算法,又稱雜湊函式,英語:Hash Function)是一種從任何一種資料中建立小的數字“指紋”的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立一個叫做雜湊值(hash values, hash codes, hash sums或hashes)的指紋。雜湊值通常用一個短的隨機字母和數字組成的字串來代表。好的雜湊函式在輸入域中很少出現雜湊衝突。
原始資料    ---輸入--->    雜湊函式   ---輸出--->   “指紋”資料
  • 是一種資料轉換函式,將輸入(原資料)對映成輸出(索引)
  • 設計良好的雜湊函式,對不同的輸入,會得到不同的輸出
  • 壓縮輸入資料,一般會生成固定長度的輸出
  • 是不可逆的,是輸入到輸出的“單向”函式

雜湊函式的概念非常寬泛,是一類演算法的統稱,常見的雜湊函式有MD5SHA

SHA(Secure Hash Algorithm,安全雜湊演算法)是一個密碼雜湊函式家族,由美國國家安全域性(NSA)設計,並由美國國家標準與技術研究院(NIST)釋出,是美國的政府標準。包括 SHA-0系列、SHA-1系列、SHA-2系列和SHA-3系列。SHA-256SHA-2系列函式之一

對於SHA-256

  • 無論輸入多長,都輸出64個字元,共32位元組(byte),256位(bit)
  • 輸出只包含數字0~9和字母A~F,大小寫不敏感

可以使用線上Hash計算工具體驗一下。文字Hi Blockchain!SHA-256結果為

475025F51CB88D38C3FD15FCBEBA4E33BCF8ACD5173ACBED91439FFB0FA9D8B2

轉 https://zhuanlan.zhihu.com/p/34361199