凱撒密碼在線加密與解密
明文
密文
什麼是凱撒密碼?
凱撒密碼是一種古老且經典的加密方式,由古羅馬將軍尤利烏斯·凱撒發明。它通過將字母表中的每個字母按固定的偏移量向前或向後移動來加密資訊。例如,偏移量為3時,字母A會被替換為D,字母B會被替換為E,依此類推。解密時,只需按照相反的偏移量移動即可還原原文。
什麼是偏移量?
偏移量是凱撒密碼加密和解密的核心參數,表示每個字母在字母表中移動的位數。正偏移量表示向右移動,負偏移量表示向左移動。例如:
- 偏移量為3時,字母A會被替換為D,B被替換為E。
- 偏移量為-3時,字母A會被替換為X,B被替換為Y。
如果用戶對“偏移量”感到陌生,可以理解為“加密中每個字母的移動距離”。偏移量的設置直接影響加密結果,是實現凱撒密碼靈活性的關鍵。
凱撒密碼如何加密?
凱撒密碼加密的核心是根據偏移量對字母表位置進行替換,具體步驟如下:
- 確定字母表,如:ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 確定加密的偏移量;例如,偏移量為3。
- 找到每個字母在字母表中的位置(從0開始編號,例如A為0,B為1,依此類推)。
- 將每個字母的位置加上偏移量。
- 結果取模字母表長度(例如26)。
- 用計算出的新位置對應的字母替換原始字母。
示例:

- 明文:HELLO
- 字母表:A-Z
- 偏移量:3
- 計算加密字母:
- H → 7(位置) + 3 = 10 → K
- E → 4 + 3 = 7 → H
- L → 11 + 3 = 14 → O
- L → 11 + 3 = 14 → O
- O → 14 + 3 = 17 → R
- 密文:KHOOR
凱撒密碼如何解密?
解密的原理是將加密時的偏移量反向應用,即從密文的每個字母位置減去偏移量,其操作步驟與加密類似。
示例:
- 密文:KHOOR
- 字母表:A-Z
- 偏移量:3
- 計算明文字母:
- K → 10(位置) - 3 = 7 → H
- H → 7 - 3 = 4 → E
- O → 14 - 3 = 11 → L
- O → 14 - 3 = 11 → L
- R → 17 - 3 = 14 → O
- 明文:HELLO
凱撒密碼的優缺點
優點
- 簡單易用:凱撒密碼的加密和解密過程非常直觀,易於手動計算。
- 快速實現:對於非嚴密安全環境,凱撒密碼是快速加密文本的一種方法。
- 適合教學:它是理解密碼學原理的入門工具,幫助學習加密和解密的基本概念。
缺點
- 易被暴力破解:由於偏移量有限(通常只有26種可能性),可以通過逐一嘗試輕鬆破解。
- 易被頻率分析破解:加密後的密文保留了原始語言的字母頻率分佈,容易通過統計分析還原明文。
- 靈活性差:傳統凱撒密碼僅對字母有效,無法處理數位或符號。
針對上述缺點,凱撒密碼衍生出了一些改進方法:
1. 多級偏移量
- 描述:為每個字母設置不同的偏移量,增加破解難度。
- 實現:根據密碼短語確定偏移量序列。例如,使用密碼“KEY”時,K對應10,E對應4,Y對應24。
- 優點:即使破解一個字母的偏移量,其他字母仍然難以破解。
2. 多表替換加密
- 描述:使用多個字母表,在加密過程中動態切換,打亂密文字母的頻率分佈。
- 實現:每加密一個字母,切換到另一個字母表。
- 優點:大幅提高頻率分析破解的難度。
3. 擴展字母表
- 描述:將數位、標點符號等字元納入字母表,並對它們同樣進行偏移加密。
- 實現:字母表可自定義,例如A-Z + 0-9 + 特殊符號。
- 優點:適用範圍更廣,支持混合內容的加密。
4. 循環加密
- 描述:對加密後的密文再次加密,重複多次。
- 優點:即使密文被破解,也只能得到中間結果。
凱撒密碼加密與解密工具的特點
- 即時加解密:輸入明文或密文,另一輸入框會即時顯示加密或解密後的內容,無需點擊按鈕。
- 自定義偏移量:支持任意偏移量,用戶可以根據需要選擇加密的強度。
- 多語言字母表:支持不同語言的字母表設置,例如英文、法文、德語等。
- 自定義字母表:支持自定義字母表,可在原有字母表後面添加,或者直接輸入新的字母表,如:字母、數位、符號或其它字元。
- 未知字元處理:可選擇是否保留不在字母表中的字元(如標點符號或數位)。
如何使用凱撒密碼加密與解密工具
- 輸入文本:如果要加密,在“明文”輸入框中輸入需要加密的內容;如果要解密,在“密文”輸入框中輸入需要解密的內容。
- 調整偏移量:在偏移量設置中選擇任意數位。
- 設置字母表:根據語言選擇合適的字母表,支持多種語言和字元集。如果所列的字母表還不能滿足你的要求,你可以手動輸入其它字母或符號,如:數位或標點符號等等。
- 選擇未知字元處理方式:勾選是否保留非字母表字元(如標點和數字)。
- 查看結果:輸入框會自動更新結果;點擊“複製”按鈕,快速複製加密或解密內容;點擊“下載”按鈕,保存所需的加密或解密內容。