使用已知的p、q生成私钥解rsa密文的方法

news/2025/1/3 12:35:16/文章来源:https://www.cnblogs.com/ljnljn/p/18645214

昨天渗透赛的一道题,研究了一下颇有感触,给大家分享一下(2024年的最后一天还要坐牢呜呜呜)

先用rsatool根据已知的p、q生成公钥

python rsatool.py -f DER -o key.der -p 31764044218067306492147889531461768510318119973238219147743625781223517377940974553025619071173628007991575510570365772185728567874710285810316184852553098753128108078975486635418847058797903708712720921754985829347790065080083720032152368134209675749929875336343905922553986957365581428234650288535216460326756576870072581658391409039992017661511831846885941769553385318452234212849064725733948770687309835172939447056526911787218396603271670163178681907015237200091850112165224511738788059683289680749377500422958532725487208309848648092125981780476161201616645007489243158529515899301932222796981293281482590413681 -q 19935965463251204093790728630387918548913200711797328676820417414861331435109809773835504522004547179742451417443447941411851982452178390931131018648260880134788113098629170784876904104322308416089636533044499374973277839771616505181221794837479001656285339681656874034743331472071702858650617822101028852441234915319854953097530971129078751008161174490025795476490498225822900160824277065484345528878744325480894129738333972010830499621263685185404636669845444451217075393389824619014562344105122537381743633355312869522701477652030663877906141024174678002699020634123988360384365275976070300277866252980082349473657

然后使用Win64OpenSSL转公钥文件为pem

openssl rsa -inform DER -outform PEM -in key.der -out mykey.pem

获得pem后直接打开,把私钥复制下来

然后使用以下Python脚本解密

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
import base64# 假设你的私钥PEM文件名为'private_key.pem'
pem_private_key = b"""
-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----
"""# 从PEM文件加载私钥
private_key = serialization.load_pem_private_key(pem_private_key,password=None,  # 如果你的私钥是加密的,这里需要提供密码backend=default_backend()
)# 假设你已经有了加密后的密文(这里用base64编码的字符串表示)
ciphertext_b64 = "..."  # 将这里的"..."替换为你的密文(base64编码)# 将base64编码的密文解码为二进制数据
ciphertext = base64.b64decode(ciphertext_b64)# 使用私钥解密密文
# 注意:你需要确保解密时使用的填充方式与加密时使用的填充方式相同
try:plaintext = private_key.decrypt(ciphertext,padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),algorithm=hashes.SHA256(),label=None))#print(f'Decrypted message: {plaintext.decode("utf-8")}')decoded_bytes = base64.b64decode(plaintext.decode("utf-8").encode('utf-8'))decoded_str = decoded_bytes.decode('utf-8')print(decoded_str)
except Exception as e:print(f'An error occurred during decryption: {e}')

运行后可以得到解密后的密文
image

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

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

相关文章

方差分析1.1

2 方差分析 2.1 单因素方差分析 2.1.1 分析基础 若控制变量有k个水平,不同水平下各观测变量的总体均值记为μ1,μ2,…,μk,则单因素方差分析的原假设为μ1 = μ2 = … = μk,即各总体均值都相等。 单因素方差分析认为,观测变量值的变动受到控制变量和随机变量两方面的影…

IOS FrameWorks探索

IOS里的库 https://www.jianshu.com/p/b0f58bae27db https://juejin.cn/post/6950926098595053582 静态库形式: .a和.framework 1.静态库在编译时加载,链接时会完整的复制到可执行文件中。 2.静态库的可执行文件通常会比较大,因为所需的数据都会被整合到目标代码中,因此编译…

Khronos计算加速

Khronos现行标准Khronos标准与计算、嵌入式、视觉和安全关键型市场最相关。Khronos现行标准,如图1-3所示。图1-3 Khronos现行标准Khronos计算加速标准Khronos计算加速标准,如图1-4所示。图1-4 Khronos计算加速标准机器学习加速APIKhronos机器学习加速API,如图1-5所示。 图1-…

推荐两本书《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》

两本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该书强力解析AI芯片的核心技术开发,内容翔实、知识点新…

Khronos将软件连接到硅片和框架

Khronos将软件连接到硅片 Khronos是开放、免费的互操作性标准,利用GPU、XR和多处理器3D图形、增强和虚拟现实、并行编程、推理和视觉加速驱动的标准组织,向任何公司开放知识产权框架。 Khronos组织成立于2000年,约200名会员,其中,美洲约占40%、欧洲约占30%、亚洲约占30%,…

算法期末考试复习

o2做法 ```cpp #include<bits/stdc++.h>#define int long longusing namespace std;const int mod=1e9+7;int dp[1010][1010];int pre[1010][1010];void solve(){ int n;cin>>n; for(int i=0;i<=n;i++){ pre[0][i]=1; } for(int i=1;i<=n;i++){ for(int j=…

平淡与新鲜 - 我的2024关键词

我坐在电脑前,仔细回想这一年发生的事情,竟然有点模糊,好像我的2024不存在一样,犹如2023、2022年我已记不起来了。于是乎我紧忙翻阅手机里面的相册,试图回忆起我的2024。前言 看着朋友圈大家对2024的总结以及对2025的期待。 有人说2024年他一共走过了10几个省份,有人说20…

全球绵羊的群体结构

001、野生群体+驯化群体 002、驯化群体

.NET Aspire: Scalar displays API instance url when accessing via proxy

aspire Scalar 端口异常 解决方案app.MapScalarApiReference(options => {options.Servers = Array.Empty<ScalarServer>(); });链接 .NET Aspire: Scalar displays API instance url when accessing via proxy scalar/scalar Discussion #4025 GitHub

自动评估基准 | 技巧与提示

过去几年,大语言模型 (LLM) 的进程主要由训练时计算缩放主导。尽管这种范式已被证明非常有效,但预训练更大模型所需的资源变得异常昂贵,数十亿美元的集群已经出现。这一趋势引发了人们对其互补方法的浓厚兴趣, 即推理时计算缩放。推理时计算缩放无需日趋庞大的预训练预算,…

2.快速入门

2.1引入JavaScript

基于PPO强化学习的buckboost升降压电路控制系统matlab仿真,对比PID控制器

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要随着电力电子技术的不断发展,Buck-Boost 升降压电路在各种电源转换和能量管理系统中得到了广泛应用。传统的 Buck-Boost 电路控制方法通常基于…