Blowfish 加密與解密
以 Blowfish 加密與解密文字,金鑰長度可自行選擇。
以今日的標準來看,Blowfish 並不安全——請只用它讀取舊資料;新資料請使用 AES 或 ChaCha20。 前往 AES
解密時還需要它。輸入的任何內容都不會離開這個頁面。
OpenSSL 的預設值是 10,000。任何次數都可以:次數越多,密碼越難猜;解密時需要相同的次數。
OpenSSL 最常用的選擇。需要 IV;會填充成完整區塊。
openssl enc -bf-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL 會詢問密碼;把文字貼進去,或加上 -in 與 -out 檔案。
Blowfish 是 Bruce Schneier 在 1993 年設計的區塊加密法,區塊為 8 位元組,金鑰可為 32 到 448 位元之間的任意長度。它曾是 DES 的熱門免費替代方案,至今仍出現在較舊的應用程式、檔案格式與設定檔中。本頁以 Blowfish 加密與解密文字,預設為 CBC 模式,也可選 ECB、CFB、OFB 或 CTR,金鑰長度能以 8 位元為單位任意設定——預設 128 位元,也就是 OpenSSL bf-cbc 的金鑰長度——並使用 openssl enc -pbkdf2 格式的密碼,或你自己的十六進位金鑰與 IV。新資料請使用 AES 或 ChaCha20。全部在瀏覽器中執行,你的文字與金鑰都不會離開你的裝置;免費、免註冊。
如何用 Blowfish 加密或解密文字
- 選擇「加密」或「解密」。輸入要加密的文字,或貼上要解密的 Base64 或十六進位文字——格式會自動偵測。
- 輸入密碼,或切換到「金鑰與 IV(hex)」,輸入金鑰與 16 位數的 IV(ECB 沒有 IV)。貼上金鑰時,金鑰長度會自動設定。
- 選擇金鑰長度(除非資料以其他長度產生,否則用 128 位元)與模式,通常是 CBC 或 ECB。只有在資料加密時沒有使用 PKCS#7 填充的情況下,才開啟「不填充」。
- 複製或下載結果,或按「交換」把結果移到輸入欄並切換方向。
功能
- 32 到 448 位元之間以 8 位元為單位的任意金鑰長度,64、128、256 與 448 可一鍵選擇
- CBC、ECB、CFB、OFB 與 CTR 模式;PKCS#7 填充或不填充
- openssl enc -pbkdf2 格式的密碼模式;預設的 128 位元就是 OpenSSL bf-cbc 使用的長度
- 金鑰與 IV 模式:8 到 112 位數的十六進位金鑰與 16 位數的 IV
- 128 位元金鑰在 CTR 以外的所有模式都會顯示 openssl 指令,搭配 OpenSSL 3 的舊版提供者
- Base64 或十六進位輸入與輸出;結果可複製、下載或交換
隱私安全嗎?
是的。Blowfish 在瀏覽器內以 WebAssembly 執行。你的文字、密碼與金鑰絕不會上傳或儲存;頁面只在開啟期間保留它們。
常見問題
Blowfish 還安全嗎?
對新資料來說不安全。目前沒有能實際破解 Blowfish 本身的攻擊,但它的 8 位元組區塊讓同一把金鑰加密大量資料時容易遭受攻擊(Sweet32 攻擊),連設計者本人也建議改用較新的加密法。請用它讀取既有資料;新資料請使用 AES 或 ChaCha20。
可以用 OpenSSL 解密嗎?
可以,使用預設的 128 位元金鑰時:echo 'U2FsdGVkX1…' | openssl enc -d -bf-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default。其他模式請用 -bf-ecb、-bf-cfb 與 -bf-ofb;在金鑰與 IV 模式中,請以 -K <32 位十六進位數> -iv <16 位十六進位數> 取代 -pbkdf2 -iter。OpenSSL 沒有 Blowfish CTR,而且 openssl enc 一律使用 128 位元的 Blowfish 金鑰,所以其他金鑰長度無法用它讀取。
應該選擇哪種金鑰長度?
選資料當初使用的長度——不確定的話就用 128 位元,因為 OpenSSL 用的就是它。在密碼模式中,本頁會從密碼推導出所選長度的金鑰,所以長度不同,金鑰也會不同。在金鑰與 IV 模式中,以十六進位金鑰本身的長度為準:貼上金鑰,金鑰長度就會跟著設定。
這和 bcrypt 一樣嗎?
不一樣。bcrypt 是以 Blowfish 的金鑰設定程序為基礎的密碼雜湊函式,雜湊值無法解密。本頁是 Blowfish 加密,可以用密碼或金鑰還原。要雜湊或驗證密碼,請使用 bcrypt 工具。