免費註冊

AES 加密解密

用口令或自己的金鑰和 IV,按 CBC、GCM 或 CTR 模式加密、解密文字。

關於AES 加密解密

AES 加密解密,用在對接之前先驗證一遍:解開介面返回的加密欄位,按後端的方式加密一段測試資料,確認手上的金鑰和 IV 到底對不對。支援 AES-CBC(PKCS#7 填充)、AES-GCM 和 AES-CTR,金鑰 128 位或 256 位,加密、解密都能做,加密結果輸出 Base64 或 Hex。

金鑰有兩種給法。口令模式使用 CryptoJS 和 OpenSSL 的 Salted__ 格式(CBC),網頁前端用 CryptoJS 按口令加密的內容可以在這裡解開,反過來也行;金鑰模式直接填金鑰和 IV,Hex、Base64、文字都可以,適合程式碼裡寫死金鑰和 IV 的情況。沒有 AES-192,因為 Chrome 的 Web Crypto 不支援;也沒有 ECB,因為它不安全。加解密由瀏覽器的 Web Crypto 完成,金鑰和內容都不上傳。口令夠不夠強,可以用密碼強度檢測測一下。

AES 加密解密怎麼用

  1. 1
    選加密或解密

    再選模式:CBC、GCM 或 CTR。

  2. 2
    填金鑰

    輸入口令,或填寫金鑰和 IV(Hex、Base64 或文字)。

  3. 3
    貼上內容

    加密就貼明文,解密就貼 Base64 或 Hex 格式的密文。

  4. 4
    複製結果

    加密結果可選 Base64 或 Hex,解密結果就是原文。

為什麼用熊仔工匠

  • 三種模式

    CBC(PKCS#7 填充)、自帶防篡改校驗的 GCM,以及 CTR。

  • 相容 CryptoJS

    口令模式讀寫 OpenSSL 的 Salted__ 格式。

  • 金鑰和 IV 自己定

    Hex、Base64 或文字,金鑰 128 位或 256 位。

  • 本機加解密

    使用瀏覽器的 Web Crypto,內容不上傳。

常見問題

AES 加密解密常見問題

支援 AES ECB 模式嗎?
不支援。ECB 會把相同的明文塊加密成相同的密文,資料的規律會暴露出來,所以特意沒有提供,請改用 CBC、GCM 或 CTR。
Java 裡的 PKCS5Padding 能對上嗎?
能。AES 的分組是 16 位元組,Java 寫的 PKCS5Padding 實際就是這裡 CBC 用的 PKCS#7 填充。
為什麼沒有 AES-192?
真正做加解密的是瀏覽器的 Web Crypto,Chrome 的 Web Crypto 不提供 192 位 AES,所以只支援 128 位和 256 位金鑰。
解密失敗是什麼原因?
常見的是金鑰、IV、模式或金鑰長度和加密方不一致,或者密文是 Hex 卻按 Base64 解(反過來也一樣)。用口令加密的內容,要用口令模式解。
金鑰和資料會上傳嗎?
不會。加解密在瀏覽器裡用 Web Crypto 完成,頁面開啟後斷網也能用。AES 金鑰要交給對方時,可以用RSA 加密拿對方公鑰加密。
把AES 加密解密分享給朋友開啟瀏覽器就能用,對方不註冊也能先試。

相關工具

HASH 雜湊加密 MD5 / SHA一次算出文字的 MD5、SHA-1、SHA-256、SHA-512 和 SM3。
TIME Unix 時間戳轉換Unix 時間戳與日期時間互轉,同時顯示本地時間和 UTC。
U+UNI Unicode 編碼轉換文字與 \u 轉義、&#; 編碼、U+ 碼點、UTF-8 位元組互轉。
&;HTML HTML 實體編碼轉換把文字轉成 HTML 實體,或把實體還原成文字。
JWT JWT 解析解析 JWT 的頭部和載荷,檢查過期時間和簽名。
01BIN 進位制轉換數字在二進位制、八進位制、十進位制、十六進位制等進位制之間轉換。
BASE Base32 / Base58 編碼Base32、Base58、Base85、Base16 的編碼與解碼。
0xHEX 文字 Hex 編碼轉換把文字按 UTF-8、GBK 或 UTF-16 轉成十六進位制,或反過來。