雜湊函式

雜湊函式是一種函式,它接受可變長度的輸入,並生成固定長度的輸出,也稱為摘要(或簡稱“雜湊”)。雜湊函式應該計算速度快,並且不同的輸入應儘可能產生不同的輸出(這稱為抗碰撞性)。

雜湊函式既有加密用途,也有非加密用途。例如,在密碼學之外,雜湊函式可以用於為關聯陣列(如對映或字典)生成鍵。

SubtleCrypto 介面的 digest() 函式為 Web 應用程式提供了各種雜湊函式。

密碼雜湊函式

在密碼學中,雜湊函式有許多應用,包括數字簽名訊息認證碼

並非所有雜湊函式都適用於密碼學。要用於密碼學,雜湊函式必須滿足以下條件:

  • 計算速度快
  • 單向性:給定輸出,重新生成原始輸入應該是不切實際或不可能的
  • 防篡改:對輸入進行任何更改都會導致不同的輸出
  • 抗碰撞性:找到兩個不同的輸入生成相同輸出應該是不切實際的

密碼學中最常用的雜湊函式是來自 SHA-2(安全雜湊演算法 2)家族,其名稱是 "SHA-" 後跟輸出摘要的位元長度:例如,"SHA-256""SHA-512"

SHA-2 是 SHA-1 演算法的繼任者,SHA-1 演算法不再被認為是安全的,不應在密碼學中使用。請注意,MD5 演算法也被認為是不安全的。

另見