【密码常识】
字母表顺序-数字
加密的时候,经常要把A~Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。A代表1,B代表2,C代表3...
字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
数字1234567891011121314151617181920212223242526
进制转换密码
例如二进制:1110101011101101011001011111110101
转为十进制:142113251815145
对应字母表:number
Mod算法
我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。
Mod就是求余数的运算符,有时也用“%”表示。例如29Mod26=3,或写成29%26=3,意思是29除以26的余数是3。
倒序
加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。
例如“love”字母倒过来拼就是“evol”。
具体加密时倒序有很多种方案,需要灵活运用。例如:
每个单词的倒序:sihtsiatset-thisisatest
整句的倒序:tsetasisiht-thisisatest
数字的倒序:02509102-20051920(test)
间隔
单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。
例如:thisisatest-thisisatest
字母频率
频率分析法可以有效的破解单字母替换密码。
关于词频问题的密码,我在这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:
a8.2b1.5c2.8d4.3
e12.7f2.2g2.0h6.1
i7.0j0.2k0.8l4.0
m2.4n6.7o7.5p1.9
q0.1r6.0s6.3t9.1
u2.8v1.0w2.4x