没有什么可以阻止密码破译者猜测一个密钥,然后用这个密钥解密密文,查看输出,如果该密钥不是正确的密钥就继续尝试下一个密钥。这种每一个可能的解密密钥的技术叫暴力破解。

# 凯撒密码暴力破解
message = input("message:")
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 把每个可能的密钥循环一遍
for key in range(len(LETTERS)):# key代表密钥# translated设为空字符串# 每次循环后清空.translated = ''# 密文里的每一个字符按顺序解密for symbol in message:if symbol in LETTERS:num = LETTERS.find(symbol) # 在26个字母里搜索到密文字符的位置num = num - key # 检查是否小于0,如果小于0,就加上26if num < 0:num = num + len(LETTERS)# 把解密之后的字符追加到translated字符串的末尾translated = translated + LETTERS[num]else:# 密文里的symbol如果不在26个字母里,就不进行解密,直接追加到字符串末尾translated = translated + symbol# 输出解密采用的key和解密后的明文print('Key #%s: %s' % (key, translated))

运行结果:

3.暴力破解凯撒密码相关推荐

  1. 基于python实现暴力破解凯撒密码

    一.凯撒密码 关于凯撒密码请参考之前的文章,链接如下: https://blog.csdn.net/weixin_52351575/article/details/120742012 二.暴力破解凯撒 ...

  2. Python暴力破解凯撒加密的文本

    凯撒加密是一种经典加密算法,把文本中的每个英文字母替换为字母表中后面第k个字母.该加密算法的抗攻击能力比较弱,因为密钥(也就是k)的取值范围是固定的,很容易暴力破解.当然,也可以利用英文的统计特性(例 ...

  3. 暴力破解凯撒加密(未知密钥时)

    一.原理 已知明文情况下,根据凯撒加密算法可知,密文只有26种可能: 将26种情况全部列出,正确的明文因为含有一定的信息,所以很容易辨认 #include<iostream> #inclu ...

  4. 【密码学】基于英文字母自然统计规律破解凯撒算法加密

    1. 前言 凯撒密码是一种古老的加密算法,至今也被应用在某些加密算法的过程中.一般而言,破解凯撒密码需要密钥,但是由于加密空间太小,解密可以穷举进行.因此本文给出了一种基于统计的解密算法,这种算法思想 ...

  5. Python密码学入门:凯撒密码

    1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...

  6. 凯撒密码(java python)

    凯撒密码是对称密码体系的代表,其原理简单点说就是原字母移动k个位置后用k位置处的字母代表之前的字母.下面给出我写的破解凯撒密码体系的初次尝试(暴力破解).程序思路大致就是对密文做适当处理,去掉标点符号 ...

  7. 凯撒密码加密算法python_Python密码学入门:凯撒密码

    1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...

  8. 加密算法(一):30行代码破解凯撒加密

    密码学的英语单词是 Cryptograghy,由希腊单词 Kryptos(隐藏)和 Graphin (写)派生出来,最初代表的意思是用来隐秘的传递信息. 以时间划分,1976年以前的密码算法都属于 古 ...

  9. 凯撒密码的加密,破解,以及暴力破解法

    凯撒密码的加密 #include <stdio.h>int main() { char a[80],b[80];//a为原码,b为加密 int i,k; scanf("%d&qu ...

最新文章

  1. CentOS7.4下 VNC Server的搭建和客户端的连接配置
  2. Opencv笔记(五)——把鼠标当画笔
  3. Gson源码分析之Json结构抽象和注解使用
  4. c#与access建立连接用作登录_Linux网络配置 | FTP 实战-虚拟用户登录
  5. slice 与 substring
  6. 高通android开发摘要
  7. 【数据竞赛】CV赛题总结:人民币面值与编码识别
  8. mysql按加号没反应_请各位大哥给小老弟解疑答惑一下 为什么点击加号没有反应?感谢...
  9. python:数据库连接操作入门
  10. 春招平均薪酬最高的职业TOP10
  11. java list装3组数据_数组转List的3种方法和使用对比!
  12. 持续交付模型中文化转型的重要意义
  13. 24-语言入门-24-cigarettes
  14. Flink Forward Asia 2020,明天见!
  15. SSM项目源码基于ssm的NBA球队|篮球管理系统
  16. hackthissite 闯关日记
  17. 谷歌如何注册账号?手机号无法验证处理方法!2023年最新教程!
  18. [重要新功能]删除自己发表的评论
  19. jxls2-java生成/导出excel工具!基于jxls2写的jxls增强版jxlss的完整教程
  20. 功耗大好还是小好_热设计功耗高好还是低好 - 卡饭网

热门文章

  1. 《嵌入式 - Lwip开发指南》第5章 LWIP测速
  2. “好奇号”现在距离地球有多远?
  3. 2023年伊凡最新整理简单方法之为hbuilderx配置node环境实现可npm install
  4. 在for循环中运行setTimeout的三种情况
  5. Total Commander的常用用法和设置
  6. 【Pytest篇】pytest生成报告的几种方式
  7. Unity引擎中的C#语言学习的笔记(1)
  8. 【财经期刊FM-Radio|2020年11月19日】
  9. oracle 英文简写的日期转成数值型日期的字符串
  10. 如何在线将CAD图纸文件进行转换成黑白PNG格式?