Hill Cipher 解碼器
使用可逆的 2 以 2 Hill 條碼矩陣與明確的 modulo-26 約定,對 A-Z 文字進行加密或解密。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.確認練習使用 A=0 至 Z=25、兩字母列向量與 X 填充。
- 2.輸入兩行矩陣,選擇加密或解密,並提供 A-Z 訊息或密文。
- 3.執行轉換,並先比對已知對例如 HELP 到 HIAT,再依賴較長的輸出結果。
關於Hill Cipher 解碼器
Hill Cipher Decoder 是一個教學用途的實作,基於 Lester Hill 的代數密碼,針對兩字母塊設計。請輸入一個 2 × 2 的金鑰矩陣,以分號分隔兩行,選擇加密或解密,所有文書處理皆在瀏覽器中完成。預設金鑰為 3 3; 2 5,將 HELP 轉換為 HIAT,此為本頁所說明的規則。
該工具將 A 對應至 0、B 對應至 1,一直到 Z 對應至 25。它會移除空白、標點符號與數字,將剩餘字母分組為長度為二的列向量,乘以金鑰矩陣,並將結果模 26。加密時,若明文長度為奇數,僅追加一個 X。此工具不會保留格式,也無法判斷最終的 X 是否為填充字元。
矩陣的規則至關重要。部分參考資料將字母向量置於行向量,或以不同順序排列金鑰值,導致相同數值輸出的密文不同。本頁採用 C = K × P,其中 P 為列向量。對於金鑰行 a b; c d 與對應對 a b; c d,輸出為 a×x+b×y 以及 c×x+d×y,每項皆模 26 處理。
解密需要模 26 的逆矩陣。行列式 a×d−b×c 必須與 26 互質;否則將無唯一逆矩陣,多組明文對可能對應相同密文。本介面拒絕此類金鑰,而非提供誤導性結果。負值或大值的金鑰會被歸一化至 0 至 25 的範圍內。
密文必須包含偶數個正常化字母,因為每組包含兩個值。明文長度可為奇數,因為加密會追加一個 X。若原始訊息確實以 X 結尾,解密無法區分該字元與填充字元。在受控練習中,請記錄原始長度,而非自動刪除尾部的 X。
Hill 密碼歷史上具有重要地位,因為它將線性代數應用於多字母取代。然而,它不適合現代保密需求。已知明文可揭露線性關係,字母表與塊大小較小,且本頁直接暴露金鑰。請勿用於密碼、令牌、個人資訊、檔案或生產訊息。請改用經審核的認證加密方案,例如 AES-GCM 以確保真實安全。
八個獨立計算的測試案例涵蓋預設 HELP 例子、奇數長度填充、零值與最大字母值,以及三種其他可逆矩陣。每個測試案例皆雙向驗證。無效行列式、奇數密文、空的正常化輸入與過大訊息皆被拒絕。輸入長度上限為 100,000 個字母,以維持互動的響應速度。
使用本頁時,請確認對方的字母對應、向量方向、塊大小與填充規則。請輸入恰好四個整數金鑰值,先測試已公開的已知對應對,再處理較長的練習,並比較 A-Z 的正常化輸出。若結果不一致,通常代表的是規則差異,而非瀏覽器運算錯誤。輸出僅含大寫字母,並有意忽略移除的顯示符號。若練習要求恢復詞語,請分別保留空格;正常化無法還原大小寫、標點、重音符號或數字。計算器也會保留解密後的尾部 X 不做移除,因為自動刪除可能導致真實訊息中的字元遺失。
方法與來源
字母對應至 0 至 25,組成兩元素的列向量。加密運算為 K × P 模 26。解密則乘以 det(K) 的負 1 次方乘以餘子式,模 26,前提是 gcd(det, 26) = 1。
常見問題
- 為何我的 Hill 密碼結果不同?
- 對方來源可能使用行向量、不同的 A 到數值對應、不同的塊大小或不同的填充規則。本頁明確說明其使用規則。
- 為何我的金鑰被拒絕?
- 其行列式與 26 不互質,因此矩陣無模逆,無法唯一解密每組對應。
- Hill 密碼安全嗎?
- 不安全。這是一種歷史教學用途的密碼,不適合用於真實機密。請改用現代的認證加密方案來處理生產資料。
相關工具
- 凱撒密碼解碼器編碼或解碼經典的凱撒位移,同時保留大小寫、標點符號、數字以及非 ASCII 文字。
- 維吉尼亞密碼解碼器在瀏覽器中加密或解密經典維吉尼亞文字,使用已知的重複 A–Z 關鍵,全部處理都在你的瀏覽器中完成。
- ROT13 編碼解碼對 ASCII 字元執行可逆的 ROT13 轉換,維持大小寫,並讓其他所有字元保持不變。
- AES 線上加密完全在瀏覽器中把文字加密為可攜、具驗證能力的 AES-256-GCM JSON 封裝,或使用密碼解密封裝。
- A1Z26 字母數字密碼轉換器把英文字母轉為明確的 A=1 至 Z=26 益智格式,並在不混淆單字邊界的情況下解碼經驗證的數字組。
- ASCII 轉換器將標準 7 位 ASCII 文字轉換為十進位碼,或將十進位碼解碼為精確的 ASCII 字元本機執行。
編碼與加密 使用指南
查看全部- Hill Cipher Decoder Alternative: Skip the Matrix Math (英文原文)
- How to Decrypt a Hill Cipher: A Worked Example (英文原文)
- How to Decrypt a 2x2 Hill Cipher Using the mod 26 Inverse (英文原文)
- How to Decipher a Hill Cipher Without Manual Math (英文原文)
- Generate an RSA Key Pair in Windows Without OpenSSL (英文原文)
- Compare Approaches to Use a ROT47 Encoder Decoder (英文原文)
- Rail Fence Cipher Decoder Alternative for Exact Text (英文原文)
- Convert Punycode to Unicode: Read xn-- Labels (英文原文)
- Check Password Strength in Python Without the Regex Trap (英文原文)
- Translate Morse Code to English: A Practical Workflow (英文原文)
- HTML Escape Cheat Sheet: Reserved Characters (英文原文)
- HMAC-SHA256 Tag Generator: Hex and Base64 Guide (英文原文)
- Convert Hex Format to Text: A Strict UTF-8 Workflow (英文原文)
- Convert File to Base64 for C# Code: Local Browser Steps (英文原文)
- Calculate CRC32 Checksum and Match the 8 Hex Digits (英文原文)
- BCC Checksum API Alternative: Compute Locally (英文原文)
- Caesar Cipher Decoder API Alternative Without Signup (英文原文)
- Binary to Text Encoding: A UTF-8 Guide (英文原文)
- Base64 to Hex Cheat Sheet: RFC 4648 Quick Reference (英文原文)
- Base58 Decode: Command Line vs Browser (英文原文)