首页 > 搜索 > python加密算法函数,使用Python强制破译凯撒加密算法

python加密算法函数,使用Python强制破译凯撒加密算法

互联网 2020-10-27 16:54:20
在线算命,八字测算命理

上一篇我们讨论了凯撒密码的Python实现。其中,我们也分析了凯撒密码是非常容易被破解的一种加密算法。今天,我们看下凯撒密码到底是如何被容易破解的?详细探讨下整个破解过程。

图片来自网络

【分 析】

我们知道,凯撒加密算法是使用移位、替换的过程对目标文本进行加密的。我们在破解过程中反其道而行之。假定我们知道凯撒加密算法使用的字母表(本例中我们使用英文大写字母表),已知字母表的数量是一定的,假设为n,一般情况下密钥的取值在1-n之间,我们假定为K。可以利用循环遍历1-n之间的整数,假设每次循环我们得到的都是正确的密钥K(符合bl破解原则哦),然后利用这个假设正确的密钥还原密文并进行输出。然后,我们会得到n条输出假定正确的记录。最终,我们比对输出记录,其中我们能够理解的,从中可以获得有效信息的就是正确记录,然后相应的整数值K就是我们要寻找的凯撒密钥咯!具体过程如下图所示。

【Python实现】

对于上述过程,我们使用Python进行实现如下图所示。

强制破解凯撒密码

逐行对上述程序进行解释:

第12行定义了一个接收假定正确的密钥、明文的列表;第15-24行假定密钥正确,每次循环遍历密钥值,传入到参数translate中;第25-26行将假定正确的密钥及原文打印输出;第27行则将验证内容加入到之前定义好的列表中;第28-30行对没有输入密文进行了处理;第31行最终函数返回测试列表,以备我们查找原文使用。【程序验证测试】

我们还是使用凯撒大帝的一句英文名言进行测试:

Even if you harvest the whole world, if no one shares with you, you will feel desolate.(你即使是收获了全世界,如果没有人与你分享,你将倍感凄凉)

我们利用前面的Python实现凯撒密码算法函数对这句话使用凯撒密码加密,密钥为13,密文为:RIRA VS LBH UNEIRFG GUR JUBYR JBEYQ, VS AB BAR FUNERF JVGU LBH, LBH JVYY SRRY QRFBYNGR.像上面这句真是看不懂了……

然后我们使用上面的程序进行bl破解,结果如下图所示。

使用程序解密凯撒密码加密内容

程序运行结果中这一句# 密钥 13: 原文:EVEN IF YOU HARVEST THE WHOLE WORLD, IF NO ONE SHARES WITH YOU, YOU WILL FEEL DESOLATE.就是我们要找的内容哦!

怎么样?小伙伴们是不是很兴奋?欢迎大家留言讨论

转载请注明出处(百家号:Python高手养成)

免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。

相关阅读

一周热门

查看更多