DevToolPal
繁

AES 加密解密

用通關密語(PBKDF2)或十六進位金鑰,以 AES-GCM 或 AES-CBC 加密、解密文字,輸出 Base64。

本機處理,不會上傳

選項

模式
演算法
金鑰
金鑰長度

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能說明

AES(進階加密標準)是幾乎無所不在的對稱式加密演算法:HTTPS、磁碟加密、密碼管理器和通訊軟體都在用。加密和解密使用同一把金鑰。本工具把文字加密成可以隨處貼上的 Base64,也能再解密回來。

金鑰可以是:

  • 通關密語:透過 PBKDF2-HMAC-SHA256 加上隨機鹽值衍生出 128 或 256 位元金鑰;
  • 十六進位金鑰:32 或 64 個十六進位字元(128 或 256 位元),直接使用。點選隨機金鑰可以產生一把。

提供兩種運作模式:AES-GCM 是現代預設選擇,能偵測竄改;AES-CBC(PKCS#7 填補)用於相容舊系統。

使用方法

  1. 選擇加密或解密、演算法和金鑰類型。
  2. 在輸入框頂端輸入通關密語或貼上十六進位金鑰。
  3. 貼上文字(或要解密的 Base64),結果顯示在右側;點選作為輸入可切換方向,確認能否還原。

輸出格式

輸出是一整段 Base64,方便透過電子郵件和聊天傳遞:

passphrase:  salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key:     IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)

解密時要使用與加密時相同的演算法、金鑰類型、金鑰長度和迭代次數。這些設定保存在頁面網址中,分享連結會帶上它們,而金鑰只留在你手上。

如何選擇通關密語

PBKDF2 讓每次猜測變慢,但救不了又短又常見的通關密語。請使用較長的隨機通關密語(例如用密碼產生器產生),並透過與密文不同的管道分享。迭代次數越多越難猜,解密也稍慢;常見值為 10 萬到 60 萬次。

常見問題

› 選 GCM 還是 CBC?

除非其他系統要求 CBC,否則選 GCM。GCM 具備驗證,金鑰錯誤或改動一個位元組都會被偵測出來,而不是輸出亂碼。CBC 只提供機密性,主要用於相容舊程式。

› 為什麼每次加密的結果都不一樣?

每次加密都使用新的隨機 IV,使用通關密語時還會產生新的隨機鹽值。兩者都存在輸出開頭,所以照樣能解密。同一把金鑰重複使用 IV(尤其是 GCM)是嚴重的安全問題。

› 如何在自己的程式中解密?

先解碼 Base64。使用通關密語時,前 16 個位元組是 PBKDF2 鹽值,接著是 IV(GCM 12 位元組、CBC 16 位元組),然後是密文;用相同迭代次數的 PBKDF2-HMAC-SHA256 衍生金鑰。使用十六進位金鑰時沒有鹽值。GCM 的最後 16 個位元組是驗證標籤。

› 通關密語或金鑰會被儲存或傳送出去嗎?

不會。加密在瀏覽器中透過 Web Crypto API 完成,通關密語或金鑰只存在目前頁面的記憶體裡,不會儲存、不會寫進網址列,也不會包含在分享連結中,因此你可以分享密文而不洩露金鑰。