范閑獲取到慶帝與神廟的往來信件,用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.pswp.cn/web/24104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24104.shtml
英文地址,請注明出處:http://en.pswp.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;.…

機器人--矩陣運算

兩個矩陣相乘的含義 P點在坐標系B中的坐標系PB,需要乘以B到A到變換矩陣TAB。 M點在B坐標系中的位姿MB,怎么計算M在A中的坐標系? 一個矩陣*另一個矩陣的逆矩陣

JavaSE 實戰五子棋中國象棋(單機簡易版)

介紹 JavaSE實踐五子棋和中國象棋游戲,棋盤,棋子繪制,輸贏判定重置棋盤,單機博弈。 五子棋棋盤 中國象棋棋盤 使用說明 啟動類 Main.java, 面板類 Panel.java繪制棋盤和玩法,實體類 ChessPiecesNode.jav…

適配器模式 Adapter

一種結構型設計模式,它允許將不兼容的對象轉換成可兼容的接口。主要目的是解決在不改變現有代碼的情況下,使不兼容的接口之間能夠正常工作,通過創建一個中間轉換的適配器來將一個對象轉換成我們所需要的接口。 場景: 當你原來的某…

【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…

2024.06.07【讀書筆記】丨生物信息學與功能基因組學(第十一章 分子水平的系統發生和進化 第四部分)【AI測試版】

讀書筆記四:《生物信息學與功能基因組學》第十一章第四部分 分子系統發生的專用名詞與樹的拓撲結構 在《生物信息學與功能基因組學》第十一章的第四部分,作者介紹了分子系統發生分析中的專用名詞,并詳細解釋了系統發生樹的拓撲結構和分支長…

【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…

ubuntu18.04環境下,arduino ide在打開串口監視器時報錯

ubuntu18.04環境下,arduino ide在打開串口監視器時報錯 Exception in thread “AWT-EventQueue-0” java.lang.UnsatisfiedLinkError: /home/lzx/.jssc/linux/libjSSC-2.8_x86_64.so: /home/lzx/.jssc/linux/libjSSC-2.8_x86_64.so: file too short 這個錯誤表明 li…

力扣1574.刪除最短的子數組使剩余數組有序

力扣1574.刪除最短的子數組使剩余數組有序 剩下有序 –> 前面一段 后面一段 有序 前面有序 后面有序 前面最后一項 < 后面第一項先反向遍歷找到right的最小值然后正向遍歷找left的最大值當nums[left] > nums[right]時 right class Solution {public:int findLen…

java線程變量共享

在Java中&#xff0c;線程變量共享可以通過幾種方式實現&#xff1a; 1.實例變量&#xff1a;如果一個實例變量被多個線程共享&#xff0c;你需要確保適當的同步&#xff0c;以避免競態條件。你可以使用synchronized關鍵字或者Lock接口來保護共享變量。 2.靜態變量&#xff1a;…

openh264 降噪功能源碼分析

文件位置 ● openh264/codec/processing/denoise/denoise.cpp ● openh264/codec/processing/denoise/denoise_filter.cpp 代碼流程 說明&#xff1a;從代碼流程可以看到&#xff0c;實現降噪的核心功能主要就是BilateralDenoiseLuma、WaverageDenoiseChroma兩個函數。 原理…

SOA主要協議和規范

Web服務作為實現SOA中服務的最主要手段。首先來了解Web Service相關的標準。它們大多以“WS-”作為名字的前綴&#xff0c;所以統稱“WS-*”。Web服務最基本的協議包括UDDI、WSDL和SOAP&#xff0c;通過它們&#xff0c;可以提供直接而又簡單的Web Service支持&#xff0c;如圖…

代碼隨想錄算法訓練營第十五天| 110.平衡二叉樹、 257. 二叉樹的所有路徑、404.左葉子之和

110.平衡二叉樹 題目鏈接&#xff1a;110.平衡二叉樹 文檔講講&#xff1a;代碼隨想錄 狀態&#xff1a;還可以 思路&#xff1a;計算左右子樹的深度差&#xff0c;遞歸判斷左右子樹是否符合平衡條件 題解&#xff1a; public boolean isBalanced(TreeNode root) {if (root n…

覆蓋路徑規劃經典算法 The Boustrophedon Cellular Decomposition 詳解

2000年一篇論文 Coverage of Known Spaces: The Boustrophedon Cellular Decomposition 橫空出世&#xff0c;解決了很多計算機和機器人領域的覆蓋路徑問題&#xff0c;今天我來詳細解讀這個算法。 The Boustrophedon Cellular Decomposition 算法詳解 這篇論文標題為"C…

nginx配置正向代理忽略證書!!!!!

要繞過證書驗證并忽略SSL證書檢查&#xff0c;可以使用curl的-k或--insecure選項。這允許curl在連接到HTTPS站點時忽略證書錯誤。你可以這樣做&#xff1a; curl -k https://220.181.49.193:10010/sms/11011200002020000001/flv/hls/11010000021321001788_1101000002132100178…

數字模擬EDA研發環境搭建

中小企業數字模擬EDA研發環境部署、集群搭建、網絡配置、硬件咨詢、數據備份、技術指導、環境生命周期維護等&#xff0c;Cadence、Synopsys、Mentor、Keysight、ANSYS&#xff0c;MATLAB、Xilinx等廠商軟件工具安裝調試。 EDA研發環境搭建經驗交流&#xff0c;請加V

【Neo4j】Windows11使用Neo4j導入CSV數據可視化知識圖譜

Windows11使用Neo4j導入CSV數據可視化知識圖譜 序1. 安裝JDK21&#xff08;1&#xff09;下載&#xff08;2&#xff09;安裝&#xff08;3&#xff09;環境配置 2. 安裝Neo4j&#xff08;1&#xff09;下載&#xff08;2&#xff09;解壓安裝&#xff08;3&#xff09;環境配置…