Toolonit
  1. 首頁
  2. 加密
  3. 加密 / 解密
  4. Serpent

Serpent 加密與解密

以曾入圍 AES 決選的 Serpent 加密與解密文字。

加密方式

解密時還需要它。輸入的任何內容都不會離開這個頁面。

PBKDF2 迭代次數

OpenSSL 的預設值是 10,000。任何次數都可以:次數越多,密碼越難猜;解密時需要相同的次數。

模式

OpenSSL 最常用的選擇。需要 IV;會填充成完整區塊。

金鑰長度
輸出格式
用 OpenSSL 執行相同操作

OpenSSL 沒有 Serpent 加密法。

Serpent 由 Ross Anderson、Eli Biham 與 Lars Knudsen 設計,在 AES 競賽中名列第二。它以 128、192 或 256 位元的金鑰,經過 32 輪運算加密 16 位元組的區塊——這是刻意保留的大幅安全餘裕,也讓它在速度上輸給了後來成為 AES 的優勝者 Rijndael——目前沒有已知的實際攻擊方式。在這裡可以用 Serpent 加密與解密文字,預設為 Serpent-256(也可選 128 或 192),支援 CBC、ECB、CTR、CFB 或 OFB 模式。使用密碼時,金鑰與 IV 由 PBKDF2-HMAC-SHA256 搭配隨機鹽值推導,輸出採用 openssl enc -pbkdf2 的 Salted__ 格式;也可以用十六進位輸入自己的金鑰與 IV。你的文字與金鑰都不會離開你的裝置:全部在瀏覽器中執行,免費、免註冊。

如何用 Serpent 加密文字

  1. 選擇「加密」或「解密」。輸入要加密的文字,或貼上要解密的 Base64 或十六進位文字——格式會自動偵測。
  2. 輸入密碼(「產生」可建立高強度密碼),或切換到「金鑰與 IV(hex)」,輸入或產生金鑰與 32 位數的 IV(ECB 沒有 IV)。
  3. 選擇金鑰長度(預設 256 位元)與模式(預設 CBC)。解密時,請使用與加密時相同的設定。
  4. 複製或下載結果,或按「交換」把結果移到輸入欄並切換方向。

功能

  • 使用 128、192 或 256 位元金鑰的 Serpent,完整 32 輪
  • CBC、ECB、CTR、CFB 與 OFB 模式;PKCS#7 填充或不填充
  • 標準位元組順序,與 NESSIE 測試向量相同
  • 以 PBKDF2-HMAC-SHA256 推導金鑰的密碼模式,並使用 openssl enc -pbkdf2 的 Salted__ 標頭
  • 金鑰與 IV 模式:使用自己的十六進位金鑰與 IV,或自動產生
  • Base64 或十六進位輸入與輸出;結果可複製、下載或交換

隱私安全嗎?

是的。Serpent 在瀏覽器內以 WebAssembly 執行;你的文字、密碼與金鑰絕不會傳送到伺服器,也不會儲存在瀏覽器中。

常見問題

Serpent 安全嗎?

安全。目前沒有已知能實際破解完整 32 輪 Serpent 的攻擊方式;它的設計目標就是即使攻擊技術進步也能保持安全,代價是速度。對一般大小的文字來說,速度差異無關緊要。AES 幾乎到處都有支援,所以當你交換資料的系統使用 Serpent 時,再選擇 Serpent。

OpenSSL 可以解密 Serpent 嗎?

不行——OpenSSL 沒有內建 Serpent,所以沒有任何 openssl 指令能讀取這個輸出。要在其他程式中使用這些資料,請選擇金鑰與 IV 模式,並把相同的金鑰、IV、模式與填充(CBC 與 ECB 用 PKCS#7)提供給該程式。

為什麼其他程式產生的 Serpent 資料無法解密?

如果金鑰、IV 與模式都正確,可能的原因是位元組順序:有些實作會把 Serpent 輸入與輸出的位元組反過來寫——Bouncy Castle 把這個變體稱為 Tnepres。本頁使用 NESSIE 測試向量的標準順序,所以 Tnepres 實作產生的資料無法在這裡解密。

可以開啟以 Serpent 加密的 VeraCrypt 磁碟區嗎?

不行。VeraCrypt 是以 XTS 模式的 Serpent 加密整個磁碟與容器檔案,並加上自己的標頭;本頁則是加密與解密文字。VeraCrypt 磁碟區請用 VeraCrypt 開啟;若要在瀏覽器中鎖住單一檔案,請使用「檔案加密」工具。

相關工具