哈希鏈是將密碼學中的哈希函式h(x)循環地用於一個字元串。(即將所得哈希值再次傳遞給哈希函式得至其哈希值)。在計算機安全中 哈希鏈是一種由單個密鑰或密碼生成多個一次性密鑰或密碼的一種方法。
例:
h(h(h(h(x))))
一個長度為4哈希鏈,通常記h(x)
蘭波特建議將其作為一種在非安全環境中的密碼保護方案。相比較而言,一個提供身份驗證的伺服器儲存哈希字元串,比儲存純文本密碼,更能防止密碼在傳輸或儲存時被泄露。舉例來說,一個伺服器一開始存儲了一個由用戶提供的哈希值h(password)。進行身份驗證時,用戶提供給伺服器h(password)。伺服器計算h(h(password)) = h(password) ,並與已儲存的哈希值h(password)進行比較。然後伺服器將存儲h(password)以用來對用戶進行下次驗證。
竊聽者即使嗅探到h(password)送交伺服器,也無法將h(password)用來認證,因為現在伺服器驗證的哈希值是h(password)。由於安全的哈希函式有一種單向的加密屬性,對於想要算出前一次哈希值的竊聽者來說它的值是不可逆的。在本例中,用戶在整個哈希鏈用完前可以驗證1000次之多。每次哈希值是不同的,因此不能被攻擊者再次使用。