安全雜湊演算法 SHA256 簡介

SHA,Secure Hash Algorithm,安全雜湊演算法,是密碼雜湊函數的家族,用於將輸入 input 的訊息轉換為固定長度字串的數值 output,這個數值稱為雜湊值 Hash,通常稱為訊息摘要 Message Digest 或摘要 Digest。

安全雜湊演算法 SHA256 簡介

安全雜湊演算法 SHA

SHA,Secure Hash Algorithm,安全雜湊演算法,是密碼雜湊函數的家族,用於將輸入 input 的訊息轉換為固定長度字串的數值 output,這個數值稱為雜湊值 Hash,通常稱為訊息摘要 Message Digest 或摘要 Digest。

SHA演算法,是由美國國家安全局 NSA 研發,由美國國家標準與技術研究院 NIST 於2001年發布的.美國聯邦資訊處理標準 FIPS 認證的安全雜湊演算法.

SHA 家族分為 SHA0、SHA1、SHA2、SHA3,比特幣採用的 SHA256 演算法是 SHA2 的演算法之一,能生出 256 位元的輸出值,是一種單向函數。

SHA256 加密哈希函數。它是 SHA-2,Secure Hash Algorithm 2,系列中的一個成員,該系列還包括 SHA-224、SHA-384 和 SHA-512。


SHA256 基本概念

SHA256 是一個單向哈希函數,具有以下特性

  • 不可逆性: 給定一個哈希值,幾乎不可能找到原始輸入。
  • 抗碰撞性: 幾乎不可能找到兩個不同的輸入,產生相同的哈希值。
  • 固定長度輸出: 無論輸入數據的大小如何,SHA-256 始終生成 256 位的輸出。

SHA256 應用

  • 比特幣: 比特幣區塊鏈挖礦使用 SHA256。挖礦過程中,礦工需要不斷變化區塊的 "隨機數(Nonce)",直到找到滿足當前難度條件的哈希雜湊值,確保每個區塊的數據完整性和安全性。
  • 數位簽章與驗證: SHA256 被廣泛應用於數位簽章和驗證過程中,確保數據在傳輸過程中的完整性。
  • 密碼學應用: 在多種密碼學應用中,如生成密碼摘要、數據完整性驗證、消息認證碼(HMAC)等。

SHA256 運作原理

  • 消息填充: 為了處理固定大小的數據塊,SHA-256 首先會對輸入數據進行填充,使其長度滿足特定要求。填充後的消息長度會是 512 位的整數倍。
  • 初始哈希值設定: SHA256 初始化時會設定一組初始的哈希值,這些值是根據分數的平方根生成的常數。
  • 消息分塊與處理: 填充過的消息被分割成多個 512 位的數據塊。每個數據塊將通過多輪壓縮函數(compression function)進行處理。
  • SHA-256 的壓縮函數: SHA256 使用了一個基於位運算、邏輯運算(如 XOR)、模加法以及置換(permutation)的壓縮函數。該壓縮函數將初始哈希值與處理過的數據塊結合,並產生新的哈希值。
  • 輸出哈希值: 最終,所有數據塊處理完畢後,初始哈希值被更新為最終的 256 位哈希值,即輸出哈希值。

SHA256 範例

這個範例演示了輸入的原始資料,只有微小的變動,輸出的雜湊值也會完全不同

  • input: 你好
  • ouput: 670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

  • input: 你好!
  • ouput: ce89dc2845fefe35a737b20d2834dd4430eb3aaf43e7dd6445b7809d56ea16b2
2025/10/7 7:34 AM


更多文章