范闲获取到庆帝与神庙的往来信件,用AES进行破解

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料

在《庆余年2》中,范闲与庆帝和神庙之间的权谋斗争愈演愈烈。一次偶然的机会,范闲从庆帝的密室中获取到几封与神庙往来的密信。然而,这封信件被加密处理,内容为“Ciphertext: d1e92b9c2d1e9a0f3b0f1e2c9a4b9c7d”,无法直接读取什么意思。范闲与五竹叔一起看这封信的内容,怀疑是皇帝与神庙的秘密阴谋。五竹一看发现是128位,猜测是MD5加密或者AES,决定通过python进行尝试解密。但是MD5发现在这里没法解密,所以尝试用AES
在这里插入图片描述

AES算法简介

在这里插入图片描述

AES(Advanced Encryption Standard)是一种对称密钥加密算法,用于保护数据。它被广泛认为是高效且安全的加密标准。AES支持128位、192位和256位的密钥长度,常用于数据加密传输和存储。但是它主要是通过秘钥的传递进行加解密

AES算法的原理

AES算法包括以下几个主要步骤:
密钥扩展:生成一组密钥,称为轮密钥,用于各轮的加密和解密操作。
初始轮:将明文与初始轮密钥进行异或操作。
轮变换:进行若干次轮变换,每次轮变换包括以下四步:

  • 字节代替(SubBytes):使用S盒替换字节,通过非线性替换增强安全性。
  • 行移位(ShiftRows):对状态矩阵的行进行循环移位,增加混淆性。
  • 列混合(MixColumns):混合状态矩阵的列,通过线性变换进一步混淆数据。
  • 轮密钥加(AddRoundKey):将当前状态与轮密钥进行异或操作,增加复杂性。

最终轮:与轮变换类似,但不进行列混合操作,最终输出密文。

范闲的解密过程

庆帝安排了一个假范闲去马车上,这个信息马上检察院发现,范闲在想与信件的内容会不会有什么关联
在这里插入图片描述

范闲把从信件中截取的密文,并使用AES算法进行解密。详细思考了一下可能的秘钥,接着他老师的话点醒了他,知道庆帝可能想利用他引诱五竹,所以秘钥很可能是他的名字:
在这里插入图片描述
秘钥用 范闲的名字带入进行解密,并且他猜测,庆帝之前已经跟神庙有过勾结,可能也学会了现代的知识,比如拼音、英语和算法,所以他在解密的时候也大胆假设。

Ciphertext: d1e92b9c2d1e9a0f3b0f1e2c9a4b9c7d  # 密文内容

获取密钥:范闲通过蛛丝马迹,推测出庆帝可能使用的加密密钥。
解密操作:范闲使用推测出的密钥和加密消息进行解密操作。

from Cryptodome.Cipher import AES
from Cryptodome.Util.Padding import unpad
from Cryptodome.Random import get_random_bytesdef aes_decrypt(iv, ciphertext, key):try:# 创建AES解密对象cipher = AES.new(key, AES.MODE_CBC, iv=iv)# 解密并返回明文decrypted = unpad(cipher.decrypt(ciphertext), AES.block_size)return decryptedexcept Exception as e:return None# 已知的密文和初始化向量(IV)
ciphertext = bytes.fromhex('d1e92b9c2d1e9a0f3b0f1e2c9a4b9c7d')
iv = bytes.fromhex('1a2b3c4d5e6f7g8h')# 候选密钥列表
key_candidates = ['qingdi', 'wuzhu', 'qingshi', 'xiyin', 'fanxian', 'siguo']
# 将字符串编码为字节并填充或截断为16字节(128位)
keys = [key.encode('utf-8').ljust(16, b'\0')[:16] for key in key_candidates]# 尝试用所有候选密钥进行解密
for key in keys:decrypted = aes_decrypt(iv, ciphertext, key)if decrypted:print(f'Key: {key.decode("utf-8")}, Decrypted: {decrypted.decode("utf-8")}')breakelse:print(f'Key: {key.decode("utf-8")}, Failed to decrypt.')

输出示例

Key: qingdi, Failed to decrypt.
Key: wuzhu, Failed to decrypt.
Key: qingshi, Failed to decrypt.
Key: xiyin, Failed to decrypt.
Key: fanxian, Decrypted: kill wuzhu
Key: siguo, Failed to decrypt.

通过AES加密算法,范闲成功解密了庆帝与神庙的往来信件,揭示了隐藏在密文背后的重要信息。
解密后的内容:

Decrypted message: kill wuzhu

这封信件详细说明了庆帝与神庙之间的秘密计划,给范闲提供了关键证据,接着他马上通知五竹有危险,然后五竹做了充分的准备,在大战神庙使者的时候轻松获胜。
在这里插入图片描述

结论

通过详细介绍AES加密算法的原理和实现过程,以及结合范闲破解庆帝与神庙往来信件的故事情节。范闲的成功解密,再次证明了科学技术在权谋斗争中的关键作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse连接后端mysql数据库并且查询

教学视频:https://www.bilibili.com/video/BV1mK4y157kE/?spm_id_from333.337.search-card.all.click&vd_source26e80390f500a7ceea611e29c7bcea38本人eclipse和up主不同的地方如下,右键项目名称->build path->configure build path->Libr…

【悬架笔记三】1/4被动悬架垂向动力学仿真+频域特性分析

1/4被动悬架 代码: %书第156页、159页 clc clear close all %% 一.悬架参数 ms320; mw50; Ks22000; Cs1500; Kw195000; f00.07; %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 二.垂向振动动力学仿真 %% 二.1.状态方程 A [0 1 0 -1;.…

JavaSE 实战五子棋中国象棋(单机简易版)

介绍 JavaSE实践五子棋和中国象棋游戏,棋盘,棋子绘制,输赢判定重置棋盘,单机博弈。 五子棋棋盘 中国象棋棋盘 使用说明 启动类 Main.java, 面板类 Panel.java绘制棋盘和玩法,实体类 ChessPiecesNode.jav…

【Text2SQL 论文】MAC-SQL:多个 Agents 合作来解决 Text2SQL

论文:MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL ⭐⭐⭐⭐ arXiv:2312.11242, 北航 & Tencent Code: MAC-SQL | GitHub 文章目录 一、论文速读二、MAC-SQL2.1 Selector agent2.2 Decomposer agent2.3 Refiner agent 三、指令微调的 SQL-L…

【Python Cookbook】S02E04 文本模式的匹配和查找 match()、search()、findall() 以及 捕获组和 + 的含义

目录 问题解决方案讨论 问题 本文讨论一些按照特定的文本模式进行的查找和匹配。 解决方案 如果想要匹配的只是简单文字,通常我们使用一些内置的基本字符串方法即可,如:str.find(),str.startwith(),str.endswith() …

Day49 动态规划part08

LC139单词拆分(未掌握) 未掌握分析:将字符串s中的各个字符看成是背包,思考成了多重背包问题单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。拆分时可以重复使用字典中的单词&#xf…

转速传感器介绍

一、概述 RPM(Revolutions Per Minute)转速传感器是一种用于测量旋转机械设备转速的传感器。它可以检测旋转部件上的特定位置标记(如齿轮、凸起或磁铁),并根据这些标记的通过频率来计算转速。发电额定频率是50hz和60z…

java线程变量共享

在Java中,线程变量共享可以通过几种方式实现: 1.实例变量:如果一个实例变量被多个线程共享,你需要确保适当的同步,以避免竞态条件。你可以使用synchronized关键字或者Lock接口来保护共享变量。 2.静态变量:…

openh264 降噪功能源码分析

文件位置 ● openh264/codec/processing/denoise/denoise.cpp ● openh264/codec/processing/denoise/denoise_filter.cpp 代码流程 说明:从代码流程可以看到,实现降噪的核心功能主要就是BilateralDenoiseLuma、WaverageDenoiseChroma两个函数。 原理…

SOA主要协议和规范

Web服务作为实现SOA中服务的最主要手段。首先来了解Web Service相关的标准。它们大多以“WS-”作为名字的前缀,所以统称“WS-*”。Web服务最基本的协议包括UDDI、WSDL和SOAP,通过它们,可以提供直接而又简单的Web Service支持,如图…

代码随想录算法训练营第十五天| 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和

110.平衡二叉树 题目链接:110.平衡二叉树 文档讲讲:代码随想录 状态:还可以 思路:计算左右子树的深度差,递归判断左右子树是否符合平衡条件 题解: public boolean isBalanced(TreeNode root) {if (root n…

覆盖路径规划经典算法 The Boustrophedon Cellular Decomposition 详解

2000年一篇论文 Coverage of Known Spaces: The Boustrophedon Cellular Decomposition 横空出世,解决了很多计算机和机器人领域的覆盖路径问题,今天我来详细解读这个算法。 The Boustrophedon Cellular Decomposition 算法详解 这篇论文标题为"C…

数字模拟EDA研发环境搭建

中小企业数字模拟EDA研发环境部署、集群搭建、网络配置、硬件咨询、数据备份、技术指导、环境生命周期维护等,Cadence、Synopsys、Mentor、Keysight、ANSYS,MATLAB、Xilinx等厂商软件工具安装调试。 EDA研发环境搭建经验交流,请加V

【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱

Windows11使用Neo4j导入CSV数据可视化知识图谱 序1. 安装JDK21(1)下载(2)安装(3)环境配置 2. 安装Neo4j(1)下载(2)解压安装(3)环境配置…

初识C++ · 模板进阶

目录 前言: 1 非类型模板参数 2 按需实例化 3 模板特化 4 模板的分离编译 前言: 前面模板我们会了简单的使用,这里带来模板的进阶,当然,也就那么几个知识点,并不太难。 1 非类型模板参数 先来看这样…

嵌入式移植jpeglib--Linux交叉编译ARM平台

一 、交叉编译jpeg库 1.下载源码tar.gz 2. 源码目录下执行 jpeglib配置文件 ./configure CCarm-none-linux-gnueabihf-gcc LDarm-none-linux-gnueabihf-ld --prefix/work/jpeg_arm_lib --exec-prefix/work/jpeg_arm_lib --enable-shared --enable-static --hostarm-none-linu…

经典文献阅读之--MGS-SLAM(单目稀疏跟踪和高斯映射与深度平滑正则化)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时&…

CiteScore 2023发布,AI Open斩获45分,位列全球计算机领域前1%

与影响因子(IF)一样,引用分数(CiteScore)同样是衡量学术期刊影响力的重要指标之一,且大有赶超前者的势头。 6 月 6 日,CiteScore 2023 正式发布,人工智能领域可自由访问的期刊平台 …

Java 8 中的 Stream API,用于处理集合数据

Java 8 引入了 Stream API,使得处理集合数据变得更加简洁和高效。Stream API 允许开发者以声明式编程风格操作数据集合,而不是使用传统的迭代和条件语句。 一、基本概念 1.1 什么是 Stream Stream 是 Java 8 中的一个新抽象,它允许对集合数…

工厂生产计划难以执行的真正原因及对策

在制造业中,生产计划的执行对于企业的运营至关重要。然而,许多工厂在生产计划执行过程中面临着诸多挑战,尤其是物料齐套率低的问题。本文将探讨工厂生产计划难以执行的真正原因,并提出相应的解决对策。 一、生产计划难以执行的真…