凱薩密碼解碼器會對您文字中的每個 ASCII 字母套用一個介於 0 到 25 的固定模數位移,從 Z 乾淨地繞回 A,以及從 z 繞回 a,同時完整保留所有其他字元的原貌。這項轉換完全在瀏覽器中執行,不需要上傳,也不進行伺服器端的轉換,而且這個工具並未聲稱具備密碼學上的保護能力。解碼模式使用與編碼模式相同的引擎,只是將位移的方向反轉,因此一個將 "HELLO" 變成 "KHOOR" 的位移值 3,在重複使用同一個數字時,也會將 "KHOOR" 還原回 "HELLO"。由於字母表恰好包含 26 個字母,對每個字母位置進行模數運算就會自動產生循環效果,而位移 0 就是恆等運算 —— 什麼都不會改變。大家熟悉的 ROT13 只是位移 13 的特殊情況,在這種情況下,由於 (13 + 13) mod 26 = 0,套用兩次位移就會還原原本的 ASCII 字母。這種可逆性正是讓凱薩密碼解碼器成為一種簡單可逆轉換的原因,而不是單向的擾亂函式。

caesar cipher decoder explained
凱薩密碼解碼器解析:模數位移與循環

凱薩密碼解碼器實際上會改變什麼(以及跳過什麼)

凱薩密碼解碼器只會針對一組嚴格且狹窄的字元進行運作。您文字中的每個 Unicode 碼位會被歸類到三個類別之一:ASCII 大寫字母(A 到 Z)、ASCII 小寫字母(a 到 z),或是保持不變。每個落入 ASCII 類別的字母都會參與位移;其他所有字元則原封不動地通過。這包含了空格、換行符、Tab 鍵、數字、標點符號、數學運算子、貨幣符號、像 é 或 ñ 這類帶有變音符號的字母、來自非拉丁字母系統的字元,例如西里爾文、阿拉伯文、希臘文、CJK,以及日文,還有像 🚀 這類的表情符號,或像 🇨🇦 這類的區域指示符號。這樣的設計在混合語言的輸入上會產生可預期的行為:只有 A 到 Z 以及 a 到 z 的字母會移動,其他任何內容都不會被靜默地轉寫、替換或「修正」。

大小寫是獨立處理的:大寫來源會保持大寫,小寫來源會保持小寫,即使在套用位移之後也是如此。因此 "Hello, World!" 在位移 3 之後會變成 "Khoor, Zruog!" —— 逗號、驚嘆號以及大小寫模式都會被保留下來。數值控制會將位移限制在傳統的 0 到 25 範圍內,而且空白的輸入不會被處理。更改來源文字、模式或位移時,會清除先前的結果,避免舊的答案被誤認為是當前的設定所產生的結果。

位移背後的模數運算

解碼器背後的運作機制是作用於 0 到 25 字母索引上的簡單模數運算。每個 ASCII 字母會先對應到它的位置(A=0,B=1,……,Z=25,其中小寫字母會被視為獨立的索引)。編碼會將位移值加到該位置,然後取結果模 26;解碼則是將位移值從該位置減去,然後取結果模 26。

以下是一個套用位移 3 到 "HELLO" 中字母 H 的計算範例:

  • H 在字母表中位於位置 7(A=0,B=1,C=2,D=3,E=4,F=5,G=6,H=7)。
  • 編碼:(7 + 3) mod 26 = 10,也就是字母 K。
  • 將 K 解碼回來源:(10 − 3) mod 26 = 7,也就是 H。

循環遵循相同的規則。以字母 X(位置 23)搭配位移 3 為例:

  • 編碼:(23 + 3) mod 26 = 26 mod 26 = 0,也就是 A。
  • 用位移 3 解碼 A:(0 − 3) mod 26 = −3 mod 26 = 23,也就是 X。

由於每個符合資格的字元都會走過相同的公式,而不是去查閱手寫的替換表,因此輸出是一致的,而且永遠不會產生超出範圍的字母。這也是為什麼同一個引擎可以同時用於編碼與解碼 —— 先向前位移 3 再向後位移 3,會讓每個字母都回到原本的位置。實作上對每個符合資格的字元都採用模數運算,並避開了那種容易在教科書範例中造成 off-by-one 錯誤的脆弱「位移表」做法。

如何使用凱薩密碼解碼器

使用這個工具是一個三步驟的流程,不需要設定、不需要註冊,也不需要上傳檔案。瀏覽器會在本地端處理所有轉換,因此以下步驟完全在您的裝置上執行。

  1. 在文字欄位中輸入或貼上您想要轉換的文字。
  2. 選擇 Encode 或 Decode,然後從 0 到 25 中選擇已知的位移。
  3. 點選轉換按鈕,檢視精確的結果,如有需要再進行複製。

編碼會產生位移後的文字,方便分享或用於解題。解碼則是在您已知位移數字的情況下,反轉既有的位移。來源中的換行會在結果中保留,而且轉換完成後結果就能立即複製。如果您需要修改位移或模式,只需調整控制項並再次執行轉換 —— 先前的結果會自動清除,以確保新的輸出只反映當前的設定。

解碼時如何挑選正確的位移

解碼器會忠實地套用您所選擇的任何位移 —— 即使是錯誤的位移也一樣,而它所產生的輸出無論如何都會看起來像是有效的凱薩輸出。位移本身永遠不會被工具推斷、猜測或還原。如果您正在解一道謎題、密室逃脫的線索、地理尋寶的提示,或是朋友的訊息,那麼位移必須由出題者或發送者提供。

傳統的做法是在處理整段文字之前,先以一個簡短且可辨識的片段 —— 例如一個單字、一個名字,或一句問候語 —— 來測試位移。如果在某個已知的單字上解碼出毫無意義的內容,那麼位移很可能是錯的,或者該文字根本使用的是不同的密碼(例如 Vigenère、Atbash、某種關鍵字替換,或是單純用於二進位安全傳輸的 Base64)。對於 ROT13 的內容 —— 常見於 Usenet 典藏、Reddit 文章標題,以及舊式的網路論壇 —— 無論方向為何,答案永遠都是位移 13,因為套用 ROT13 兩次會還原原本的 ASCII 字母。在課堂範例中,最常見的位移是 3,符合最初尤利烏斯·凱撒的傳統。

若要快速查詢特定位移如何對應字母表前幾個字母,請參考 凱薩密碼解碼器速查表,其中顯示了位移 1 到 25 各自對應的前十個字母。

為什麼凱薩密碼並非安全性

凱薩密碼是一種替換謎題,而非加密。它只有 26 種可能的位移(包含恆等位移 0),觀察者幾乎可以瞬間用肉眼或腳本嘗試每一種可能。即便不逐一嘗試所有位移,統計字母頻率也能幾乎輕易地揭露出明文:在一般的英文中,E 以極大差距穩居最常出現字母的寶座,T 和 A 緊隨其後,而罕見字母 Q、X、Z 的出現頻率同樣是可預測的。一旦辨識出可能的候選字母,從 E(或其他錨點)量測出的位移距離就能一步得出金鑰。

絕對不要使用凱薩密碼來保護密碼、還原碼、私密通訊、客戶資料、身份驗證 token、財務細節,或任何需要保密性的資訊。現代密碼學系統仰賴經過審核的演算法(例如 AES-256-GCM)、秘密金鑰、經過驗證的加密,以及嚴謹的金鑰管理 —— 而這些特性在歷史悠久的替換謎題中是完全欠缺的。凱薩密碼解碼器的設計目的在於課堂示範、解題、密室逃脫線索、地理尋寶提示、輕量級的文字混淆,以及檢驗一道已解出的密碼範例;它不是一個隱私工具。

凱薩密碼解碼器在其他編碼器中的定位

凱薩密碼解碼器是眾多編碼與解碼工具之一,每一種工具各自解決不同的問題。下表簡要比較了最常見的幾項。

工具 輸入 運算 可逆 使用情境
凱薩密碼解碼器 ASCII 字母 將 A–Z 與 a–z 位移 0–25 是,使用相同位移 謎題、課堂教學、輕量級混淆
ROT13 編碼器 ASCII 字母 永遠位移 13 是,自我反函數 論壇劇透、提示文字、搜尋混淆
Vigenère 密碼 ASCII 字母 以重複的 A–Z 金鑰進行位移 是,使用相同金鑰 歷史上的多字母替換謎題
Base64 編碼 / 解碼 原始位元組 對應至 64 個可列印字元 是,精確往返 JSON 中的二進位、資料 URI、MIME
URL 編碼 / 解碼 URL 組成部分 對特殊字元進行百分比編碼 是,精確 查詢字串、路徑片段

在針對字母的解題上,凱薩密碼解碼器 仍是最直接的選擇,因為位移只是一個整數,而且輸出會出現在同一個瀏覽器分頁中。對於任意資料的位元組安全傳輸,Base64 編碼與解碼能夠正確處理表情符號、變音符號以及二進位內容,而且從不將位元組送出裝置。對於點與劃,莫斯密碼翻譯器則能將文字轉換為可播放的莫斯音訊,反之亦然。每個工具都解決不同的編碼問題,不應被視為可以互換。

維基百科上凱薩密碼的概覽 為想要追溯此密碼至其羅馬根源的讀者提供了歷史與數學背景,而這個工具背後的模數運算引擎,與古典文獻及開源實作中所採用的方法是一致的。

若想進一步深入了解,請參閱 Hill 密碼解碼器範例:3 步將 HELP 轉為 HIAT。