Hello,我是小恐龙。今天编一个超烧脑算法——换位密码。先来了解一下什么是换位密码:
明文:hello,everyone.iamminidinosaur.
密钥:(1 5 4)
密文:leloheevr,eon.ymamiiiidnnusaro****.
对比一下代码运行结果:
这种置换密码的原理是:
把明文按照组宽(这里选了5,当然也可以设置为任意数字)排列,不足部分用*补充;
密钥(1 5 4)的含义是:把第1列换到第5列,第5列换到第4列,第4列换到第1列;
加密后的密文就是图1中按照行读取出来。
聪明的小伙伴是不是立刻想到了小恐龙以前发的“N字”加密?没错儿,“N字”加密也是一种置换加密技术,都是很难破解的:
scratch编程 黑客加密技术——N字加密
了解了加密原理,编程就不难了,图1中右下角的数字是为了找规律做的标记:
注意看上面的3个链表在时刻变化的哦。任意输入明文,列数和密钥也是可