博福特密碼加密與解密
明文
密文
什麼是博福特密碼?
博福特密碼是一種經典的對稱密鑰加密算法,採用的是類似維吉尼亞密碼的原理,但與其不同的是,博福特密碼使用的加密和解密過程是完全相同的。也就是說,加密和解密的步驟一樣,因此它非常適合加密和解密密文。
博福特密碼基於一個字母表和一個密鑰。在加密時,首先找到明文字母所在的列,然後順著列找到密鑰字母,把這一行所在的行號字母作為密文。與維吉尼亞密碼的不同之處在於,博福特密碼的密文字母是通過查找字母表中的行和列,並根據密鑰字母反向選擇的。
博福特密碼如何加密與解密?
- 準備內容和密鑰:處理內容,去除非字母字元,同時,如果密鑰比內容短,需要重複密鑰直到與內容長度一致。
- 生成字母表:默認的字母表為 A-Z,根據需要調整或自定義字母表。
- 加密或解密過程:對於每個明文或密文字母,找到該字母所在的列;然後,順著列找到祕鑰字母所在的行,這一行所在的行號字母就是密文或明文。重複這個過程,直到整個加密或解密完成。
示例
假設要用默認字母表(A - Z)和祕鑰“KEY”來加密“HELLO”
第一個字母 H,在字母表中找到 H 所在的列;順著 H 所在的列找到祕鑰字母 K,字母 K 對應的行號為 D,所以,D就是密文的第一個字母。依此類推,找出明文的其它加密字母,如下圖:

- H + K → D
- E + E → A
- L + Y → N
- L + K → Z
- O + E → Q
所以,HELLO 對應的密文為:DANZQ。