Back to Blog

雜湊 (Hash) 與加密 (Encryption) 的比較

在資訊安全的領域中,雜湊 (Hash) 和加密 (Encryption) 是兩種常用於保護資料的技術,但它們的目的和運作方式有很大的不同。最關鍵的區別在於:加密是可逆的,而雜湊是不可逆的

#加密 (Encryption)

加密是將資料(稱為明文)透過一個演算法和一個金鑰 (key) 轉換成無法直接讀取的格式(稱為密文)。這個過程是可逆的,只要擁有正確的金鑰,就可以將密文解密還原成明文。

加密主要分為兩種類型:

  • 對稱加密 (Symmetric Encryption): 加密和解密使用同一把金鑰。這種方式速度快,但金鑰的傳輸和管理是一個挑戰。
  • 非對稱加密 (Asymmetric Encryption): 使用一對公鑰和私鑰。公鑰可以公開給任何人,用於加密資料;而私鑰則由擁有者保管,用於解密資料。這種方式更安全,但速度較慢。

流程:

明文 -> 加密 (使用金鑰) -> 密文
密文 -> 解密 (使用金鑰) -> 明文

#雜湊 (Hashing)

雜湊是將任意長度的資料透過一個雜湊函式 (Hash function) 轉換成一個固定長度的雜湊值 (Hash value)。這個過程是單向的、不可逆的,無法從雜湊值反推出原始資料。

特性:

  • 不可逆性: 無法從雜湊值還原成原始資料。
  • 唯一性: 不同的輸入資料應該產生不同的雜湊值。如果兩個不同的輸入產生了相同的雜湊值,就稱為碰撞 (Collision)。一個好的雜湊函式應該要能有效地避免碰撞。
  • 固定長度: 無論輸入的資料多長,輸出的雜湊值長度都是固定的。

流程:

明文 -> 雜湊函式 -> 雜湊值

#何時使用?

  • 加密: 當您需要在未來某個時間點還原資料時,例如傳輸敏感資料(信用卡號碼、個人身份資訊)或儲存需要被讀取的機密檔案。
  • 雜湊: 當您只需要驗證資料的完整性或真實性,而不需要知道原始資料時,例如儲存使用者密碼、驗證檔案是否被竄改。

#總結

特性 加密 (Encryption) 雜湊 (Hashing)
可逆性 可逆 不可逆
金鑰 需要 不需要
輸出長度 不固定 固定
用途 保護資料內容,並在需要時還原 驗證資料完整性、儲存密碼