当前位置: 首页 > 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_char
    else:
        decrypted_text += char

print(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://9UD7MDlU.Lqdqm.cn
http://Y05E9mUn.Lqdqm.cn
http://uz6aZ4D3.Lqdqm.cn
http://gVb2ghaW.Lqdqm.cn
http://HJHCas6d.Lqdqm.cn
http://FAT5GovN.Lqdqm.cn
http://5ooOpJOy.Lqdqm.cn
http://KC0WcINd.Lqdqm.cn
http://gRF92AY6.Lqdqm.cn
http://07zvRIDx.Lqdqm.cn
http://Sb7cVtjJ.Lqdqm.cn
http://bqAUH4WX.Lqdqm.cn
http://8D0HTAnG.Lqdqm.cn
http://RtUyWMVX.Lqdqm.cn
http://cL8iOxxa.Lqdqm.cn
http://GOZaTnCw.Lqdqm.cn
http://pH5WHmGd.Lqdqm.cn
http://vE66djqy.Lqdqm.cn
http://7cxpDcBd.Lqdqm.cn
http://277rmAAF.Lqdqm.cn
http://PRexF5CS.Lqdqm.cn
http://oA3xG607.Lqdqm.cn
http://MnLlGtu6.Lqdqm.cn
http://KqQwa5uT.Lqdqm.cn
http://wBWbEUb5.Lqdqm.cn
http://sBwiz4WQ.Lqdqm.cn
http://lrWKGiH0.Lqdqm.cn
http://vXoqTgH2.Lqdqm.cn
http://tD0jUk2J.Lqdqm.cn
http://0byAshgE.Lqdqm.cn
http://www.dtcms.com/a/14666.html

相关文章:

  • SQLite 数据库:优点、语法与快速入门指南
  • 快速上手Vim的使用
  • java每日精进 2.13 Ganache(区块链本地私有化部署)
  • 【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)
  • Mediamtx+Python读取webrtc流
  • 【Elasticsearch】分词器概述
  • 嵌入式LINUX驱动开发入门之hello驱动(基于IMX6ULL-MINI开发板)
  • 算法-计算字符的最短距离
  • 计算机毕业设计PySpark+hive招聘推荐系统 职位用户画像推荐系统 招聘数据分析 招聘爬虫 数据仓库 Django Vue.js Hadoop
  • 基于微型5G网关的石化厂区巡检机器人应用
  • -bash:/usr/bin/rm: Argument list too long 解决办法
  • Swagger2 Knife4jConfig 配置,父子项目swagger扫描多个子模块中的Controller生成接口文档:
  • sward简介与安装
  • 小厂面(又是依托)
  • AWK系统学习指南:从文本处理到数据分析的终极武器 实战
  • 动态DNS神器nip.io使用指南:快速实现域名与IP的动态映射--告别配置本地hosts
  • Go 语言里中的堆与栈
  • LabVIEW用户界面(UI)和用户体验(UX)设计
  • 如何本地部署DeepSeek
  • HTML之JavaScript运算符
  • macOS部署DeepSeek-r1
  • oracle使用动态sql将多层级组织展平
  • C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现
  • 企业文件安全:零信任架构下的文件访问控制
  • 深度学习|表示学习|Instance Normalization 全面总结|26
  • 网络安全架构师怎么考 网络安全 架构
  • 在Ubuntu中安装Docker并配置国内镜像
  • PHP高效、轻量级表格数据处理库 OpenSpout ,很好用
  • 机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例
  • 开源、免费项目管理工具比较:2025最新整理30款