C 语言写的 Playfair 密码 的加密程序
这是老师叫我们写的一个Playfair 密码的加密程序,解密的我写不来。请高手指教!
Playfair密码 规则:
1.给定一个关键字(密码),比如playjerry。
·对于重复字母,只取一个;
·把J字母除去;
处理后的关键字就成了:player。
2.用处理后的关键字(player)与去除了 J 的字母表 构造一个5X5的矩阵。
先放关键字 再放其它字母 不能重复
比如本例矩阵如下:
p l a y e
r b c d f
g h i k m
n o q s t
u v w x z
3.对明文的处理:
· 如果明文中出现 j 字母用 i 去代替;
· 如果明文中相邻两个字母相同,就中间用 x 或 q 隔开,如明文为aa,可处理为axa;
· 通过以上两步处理,如果明文中字母个数为奇数,在最后一个字母后面 补上一个 与其不同的字母;
4.加密规则,每次加密两个字母:
· 如果两个字母在矩阵中的同一行,取他们右边的字母做为密文;
如 明文为 st ,则 密文为 tn;
· 如果两个字母在矩阵中的同一列,取他们下边的字母做为密文;
如 明文为 sx ,则 密文为 xy;
· 如果两字母在一个矩形的两个顶点上,那么取矩形的另外两个顶点做密文;
如 明文为 xo , 则 密文为 vs;