ღ Miranda

常见古典密码的破译

古典密码编码方法归根结底主要有两种,即置换和代换。把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。代换密码则是将明文中的字符替代成其他字符。本文介绍了几个古典密码的解密python脚本。

凯撒密码破译

凯撒密码是十分古老的加密方式,它的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文,假如需要破解pgs{jro-fuv-lna-one}这一串密文。

凯撒密码是位移密码,写个程序遍历出所有结果,遍历脚本:

运行这个程序可以得到26行输出。

下面提供凯撒密码的加密脚本:

原文链接: http://www.jianshu.com/p/c5ff37899393

栅栏密码破译

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。

破译脚本:

脚本会列出所有可能组合,从中寻找合适的解答就行了。

培根密码破译

培根密码本质上是用二进制数设计的,没有用通常的0和1来表示,而是采用a和b,可以变得非常隐蔽,可以先把明文变为由A,B组成的密文,加密者需使用两种不同字体,准备好一篇包含相同AB字数的假信息后,即两种字体分别代表A型和B型,然后假信息中的每个字母按字体来决定其代表“A”还是“B”。

注: bin(x)函数将整数x转换为二进制字符并有前缀0b,join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串:

发表评论

电子邮件地址不会被公开。