当前位置: 首页 > news >正文

Python:凯撒密码

题目内容:

凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下:

原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

原文字符与其密文字符满足如下条件:

密 = (原+3) mod 26

解密方法反之,满足:

原 = (密–3) mod 26

请解密:HAFHOOHQW

输出样例如下:

encrypted_text = "HAFHOOHQW"
print(f"待解密码为:{encrypted_text}")
decrypted_text = ""
for char in encrypted_text:if char.isalpha():if char.isupper():original_char = chr((ord(char) - ord('A') - 3) % 26 + ord('A'))else:original_char = chr((ord(char) - ord('a') - 3) % 26 + ord('a'))decrypted_text += original_charelse:decrypted_text += charprint(f"解得密码为:{decrypted_text}")

这段 Python 代码的主要功能是对一个经过简单凯撒密码加密的文本进行解密操作。凯撒密码是一种简单的替换加密方法,它将字母表中的每个字母按照固定的位数进行位移。在这段代码中,加密时字母向右移动了 3 位,因此解密时需要将字母向左移动 3 位。下面是对代码的详细解释:

1. 定义加密文本:将加密后的文本 "HAFHOOHQW" 赋值给变量 encrypted_text,并打印待解密码的信息。

2. 初始化解密文本:创建一个空字符串 decrypted_text,用于存储解密后的文本。

3. 遍历加密文本:使用 for 循环遍历 encrypted_text 中的每个字符。

4. 字符处理

  • 如果字符是字母,则根据其大小写进行不同的处理:
  • 对于大写字母,将其向左移动 3 位,通过计算偏移量并转换为对应的字符。
  • 对于小写字母,同样将其向左移动 3 位。
  • 如果字符不是字母,则直接将其添加到解密文本中。

5. 打印解密结果:将解密后的文本存储在 decrypted_text 中,并打印解得密码的信息。

觉得有帮助就给博主点个关注叭~~

有问题的可以私信或者在评论区一起交流

友友们一起加油叭QAQ

http://www.lryc.cn/news/535162.html

相关文章:

  • C++引用深度详解
  • C++ Primer 语句作用域
  • github - 使用
  • 内网ip网段记录
  • k8s部署logstash
  • EF Core中实现值对象
  • 【分布式理论9】分布式协同:分布式系统进程互斥与互斥算法
  • 木材表面缺陷检测数据集,支持YOLO+COCO JSON+PASICAL VOC XML+DARKNET格式标注信息,平均正确识别率95.0%
  • Leetcodehot 力扣热题100 二叉搜索树中第 K 小的元素
  • Awtk 如何添加开机画面
  • 关于多语言商城系统的开发流程
  • IDEA中常见问题汇总
  • 计算机视觉-拟合
  • CSS 实现下拉菜单效果实例解析
  • DeepSeek模拟阿里面试——Mysql
  • MVVM设计模式
  • 解决:Cannot find a valid baseurl for repo: base/7/x86_64
  • ffmpeg -codecs
  • 社区版IDEA中配置TomCat(详细版)
  • 强化学习 DPO 算法:基于人类偏好,颠覆 PPO 传统策略
  • 长安链支撑全国不动产登记数据可信流通
  • GitCode 助力 Dora SSR:开启游戏开发新征程
  • 获取 Windows 视频时长的正确方式——Windows Shell API 深度解析
  • Linux系统安装Nginx详解(适用于CentOS 7)
  • 深入理解Java对接DeepSeek
  • flutter isolate到底是啥
  • 深入剖析 Apache Shiro550 反序列化漏洞及复现
  • 计算机毕业设计——Springboot的简历系统
  • 【kubernetes组件合集】深入解析Kubernetes组件之三:client-go
  • 线程池-抢票系统性能优化