若要解密凱薩密碼,請對密文中的每個 ASCII 字母執行反向位移,使用與加密時相同的數字,當字母跨越邊界時,字母表會從 Z 繞回 A。例如,位移為 3 時,密文字母 D 會對應回明文字母 A,E 對應回 B,X 對應回 U,因為解碼器是減去位移而不是加上位移。「凱薩密碼解碼器」可直接在您的瀏覽器中執行此反向位移,支援 0 到 25 的位移值,並保留大寫字母為大寫、小寫字母為小寫。標點符號、數字、空格、表情符號、帶有變音符號的字元,以及 ASCII 拉丁字母以外的書寫系統都會原封不動地通過,這使得混合語言與格式化文字的處理結果可預測。轉換過程在頁面本地執行,因此密文永遠不會離開您的瀏覽器,您可以放心地貼上謎題線索與日常訊息。解碼需要三個動作:貼上密文、選擇已知位移的「解碼」,然後複製產生的明文。請僅將輸出視為可閱讀的文字,而非保護手段,因為凱薩位移只有 26 種可能性,反轉非常容易。

how to decrypt caesar cipher
how to decrypt caesar cipher

「解密」凱薩密碼的真正含義

凱薩密碼是一種固定的字母替換謎題:每個符合條件的字母都會被替換為在 26 個英文字母表中向前移動固定位置的另一個字母。「解密」是反轉該替換的日常說法,但在密碼學中更精確的詞彙是「解碼」,因為凱薩位移並非加密。它除了位移數字之外沒有任何秘密金鑰,任何了解字母表的觀察者幾乎都能立即測試所有 26 種可能性。當您解碼時,您是朝相反方向套用相同的位移:編碼時的位移 5,在解碼時就變成反向的位移 5。如果一個大寫字母的字母索引為 i,位移為 k,則解碼會將新索引計算為 (i − k) mod 26,結果再繞回 A 到 Z 之間的字母。

這種模運算正是讓解碼器能正確處理邊界的原因。位移為 3 時,解碼密文字母 A 會對應到 X,因為 A 的索引為 0,0 − 3 為 −3,而 −3 mod 26 為 23,對應到 X。同樣的繞回行為也保護了字母表另一端的解碼。只要您知道發送者使用的位移,解碼就是一個確定性的單步操作,而 維基百科上的凱薩密碼條目也確認,這種「位移 N」規則自古以來就是標準定義。

凱薩密碼解碼器在您的瀏覽器中做了什麼

凱薩密碼解碼器是一個專注的瀏覽器工具,會對 ASCII 字母執行反向位移,並保留其他所有字元不變。您將密文貼入文字欄位,選擇「解碼」,設定與加密時相同的位移,然後點擊轉換按鈕。頁面會對每個符合條件的字元套用模減法,並在結果區域顯示明文,方便複製。

在實作上,用戶端會將位移值模 26 標準化,將每個 Unicode 字碼點分類為 ASCII 大寫、ASCII 小寫或保持不變,並對這兩個 ASCII 字母範圍執行模運算。轉換過程不會發出任何網路請求,因此文字永遠不會送到轉換 API。由於引擎會分類每個字碼點,像 é、中、斯拉夫字母、表情符號、數字、撇號與標點符號這類字元都會完全按照原本的樣子通過。

大小寫會被獨立追蹤:大寫的 A 永遠是大寫的 A,小寫的 a 永遠是小寫的 a,即使經過多次解碼也是如此。更換來源文字、模式或位移也會清除先前的結果,這能避免將舊的答案誤認為是當前設定的結果。空白的輸入不會被處理,而數值位移控制項則限制在慣用的 0 到 25 範圍內。

在您的密文上執行凱薩密碼解碼器

  1. 確認用於加密密文的位移數字。如果謎題或發送者標示「位移為 5」或「ROT13」,請在開啟工具前先記下該確切數字。
  2. 開啟凱薩密碼解碼器,並將密文貼到輸入文字欄位中。換行、定位點與周圍的空格會被保留,因此您可以一次貼上整個區塊。
  3. 選擇解碼作為模式,讓引擎執行反向位移而不是加上位移。
  4. 從 0 到 25 中選取與編碼位移相符的數值。如果數值錯誤,輸出將會是亂碼,因此請務必依照謎題指示再次核對此數字。
  5. 點擊轉換按鈕,並閱讀出現在結果區域中的明文。輸出會完全保留輸入中的大小寫、換行與所有非字母字元。
  6. 在將完整結果視為正確之前,請先用一小段可辨識的片段(例如常見單字、已知名稱或標點模式)進行合理性檢查。如果解碼結果沒有意義,可能是位移錯誤,或是該文字使用了不同的密碼。
  7. 確認明文正確後,請使用複製控制項複製明文。當您變更輸入、模式或位移時,結果欄位會自動清除,因此請在調整任何設定前先擷取內容。

解碼過程中解碼器不會動到的部分

只有 52 個 ASCII 拉丁字母會參與位移。其他所有內容會逐位元組原封不動地通過,包括空格的位置與數量,這就是為什麼解碼器能以完全符合您貼上內容的方式處理標點符號、數字與表情符號:

字元類型範例解碼時的行為
ASCII 大寫字母A, M, Z依所選數值位移;保持大寫
ASCII 小寫字母a, m, z依所選數值位移;保持小寫
空格與定位點" ", tab原封不動通過,包含數量與位置
數字0 through 9完整保留;不套用位移
標點符號. , ! ? ; : - ' "完整保留
帶變音符號的拉丁字母é, ñ, ü, ø保留不變;只有 A–Z 和 a–z 會參與位移
非拉丁字母書寫系統中, あ, Ж, α保留不變
表情符號🙂, 🚀, 🔑保留不變

這種刻意設定的範圍讓混合語言輸入保持可預測。一個像 "café ZOO" 這樣的法文片語,若以位移 3 解碼,仍會保持為 "café WLL"——é 不受影響,而 Z、O、O 則分別向後移動三個位置。這個工具從不假設 26 個字母的規則能決定其他字母表的轉換方式,這就是為什麼帶變音符號與非拉丁字母的字元在每一次解碼循環中都能完整保留下來。

同樣的範圍也保護了格式。密文中的換行、段落分隔與定位點,會以相同位置出現在明文中,因此多行線索與詩歌風格的謎題能與單行文字一樣乾淨地解碼。例如,如果您的輸入包含以空白行分隔的三個段落,輸出也會是同樣以空白行分隔的三個段落。

檢查明文並處理錯誤的位移

解碼只有在位移與加密端使用的位移相符時才是正確的。最可靠的驗證方式是先在一段可辨識的片段上測試結果:一個簡短的單字、一個已知名稱,或一句您能朗讀出來的片語。使用正確的位移時,英文單字會立刻歸位;使用錯誤的位移時,您會看到另一段看似合理的亂序凱薩字串,因為每個位移都會產生看似可讀的 ASCII 字母。

如果您不知道位移,解碼器並不會幫您找出來。它不會執行頻率分析、不會嘗試所有 26 種可能性,也不會判斷結果是否毫無意義。對於位移未知的謎題,正確的做法是手動嘗試從 0 到 25 的每個位移,並尋找能形成可辨識單字的輸出,或是使用會為每個候選選項評分的暴力破解輔助工具。當謎題或發送者直接提供位移時,凱薩密碼解碼器是合適的工具;若位移未知,則應改用其他破解工作流程,例如 凱薩密碼金鑰尋找指南

解碼器也不會翻譯語言、驗證輸出是否為有意義的英文,或辨識某段文字是密文還是普通文字。將輸出視為輸入與位移的確定性函式,是最安全的心智模型:在兩個方向使用相同位移的情況下,您編碼的內容就能解碼,而用錯誤位移解碼的結果看起來就像更多的密文。

當凱薩密碼並非真正的安全性時

凱薩密碼是一種教學與謎題工具,而非隱私工具。它只有 26 種可能的位移(包含位移為 0 的恆等位移),了解字母表的觀察者可以在不到一秒的時間內嘗試每一種組合。英文字母的頻率分布也使得明文在僅僅幾個字元後便會被識破,而眾所周知的 ROT13 特殊情況(位移為 13)本身就是自身的反函數,這使得即便是這個變體也極易被反轉。請將此解碼器視為適合課堂示範、解謎、密室逃脫線索、地理尋寶提示,以及輕量級的文字混淆用途,除此之外別無其他作用。

切勿使用凱薩位移來保護密碼、復原碼、私密訊息、客戶資料、驗證權杖、財務細節,或任何需要保密性的資訊。針對這些用途,現代密碼學是唯一負責任的選擇:經過審查的演算法、秘密金鑰、認證加密,以及謹慎的金鑰管理。AES 線上加密工具或 密碼產生器等工具正是為了這些真正的安全性任務而存在。歷史悠久的字母替換謎題無法提供上述任何保護,本頁面上的「編碼」一詞僅指字母的轉換,並非安全性的保證。

針對其他有時會與密碼工作混淆的表示任務,請改用對應的工具。需要傳輸安全文字形式的位元組應使用 Base64 編碼 / 解碼;點與劃應使用 摩斯密碼翻譯器;URL 元件的跳脫處理則應使用 URL 解碼器。這些工具解決的是不同的編碼問題,不應被視為可互換的安全方法。

若想深入了解,請參閱 Python 中的凱薩密碼解密:從公式到工具