本文意在整理最近做题过程中遇到的常见古典密码的特征及解密方法。
一、baseX解密
1.密码特征
编码类型 | 字母特征 | 数字特征 | 特殊符号特征 |
base16 | 大写 | √ | × |
base32 | 大写 | 没有“1” | 补“=” |
base64 | 大小写 | √ | “+”,“/”,补“=” |
base58 | 大小写(没有“O”,L小写,i大写) | 没有“0”,“1” | × |
base85 | 大小写(小写没有v-z) | √ | √ |
base91 | 大小写 | √ | √ |
表中数字特征中“√”表示有0-9,特殊符号中“×”表示无特殊符号,“√”表示有较多特殊符号。
2.解密方法:在线网站Base16 Base32 Base58 Base62 Base64 Base85 Base91 编码/解码 - 锤子在线工具 (toolhelper.cn)
二、caesar密码
1.密码特征:仅限字母加密,用一致偏移相同距离的新字母代替原码中的字母,如A加密为D,B加密为E,以此类推,此时偏移量为3。
2.解密方法,已知偏移量下利用在线网站在线凯撒密码加密解密 (lddgo.net)或凯撒密码 加密/解密 - 锤子在线工具 (toolhelper.cn)。
未知偏移量下通过python输出所有可能的结果,寻找可读明文:
str="Khoor"
destr=""
for n in range(0,27):
destr = ""
for char in str:
if char.islower():
dechar = chr((ord(char) - ord("a") - n) % 26 + ord("a"))
destr = destr + dechar
else:
dechar=chr((ord(char)-ord("A") -n) %26 +ord("A"))
destr = destr+dechar
print(f"偏移量为{n}时,解密得到的明文为{destr}")
此案例得到结果在偏移量为3时,解密得到的明文为“Hello”。
或者在线词频分析quipqiup - cryptoquip and cryptogram solver。
三、摩斯密码
1.密码特征:密文由“-”、“.”或“0”、“1”等两种信号构成。
2.解密方法:在线网站在线摩斯密码翻译器 (lddgo.net)。自定义好短码、长码、分隔符、编码间隔、分隔间隔即可。
四、栅栏密码
1.密码特征:通过分组移位加密,各种符号(中英文、特殊符号等)都有可能出现。
2.解密方法:在线解密网站栅栏密码在线加密解密 - 千千秀字 (qqxiuzi.cn)。
其他常见密码将在下期整理,行文仓促,有不足之处恳请大家批评指正。