python RSA 2048位 已知P,Q计算出E和D

这个软件居然不保存D,吓死宝宝了。刚把公钥【公钥指数(E)和模数(N)】发给客户,自己写代码找D【私钥指数(E)】居然没保存。

试了一个随机的生成的一对key pair,可以找回。

在这里插入图片描述

在RSA中,私钥的解密指数 d 可以通过以下公式计算:

ed ≡ 1 (mod φ(n))

其中 φ(n) = (p-1)(q-1)。但是,如果你已经知道 DP 和 DQ,你可以直接计算 d,因为 DP = d mod (p-1) 和 DQ = d mod (q-1)。以下是一个Python代码示例,用于计算 d:

from rsa.key import calculate_keys

# 已知参数
from rsa.key import calculate_keys

# 已知参数
p = int('E4008D8A8C30E19B8DB52C5391D068040D29177E4CCFF02ABA6BCA6375C5C81B107AC5ADA8FE00FE2BCF09D9E6FAED8B4FD2A0BB14EDAA8E636113FB793F926A6F4EF492430BC99224E0545000A2B310524F4C5727087901714B769F8F7389151B747272F4D115118EE064F07841914E2D9A738A1D973739FD204A884EDA87C1', 16)
q = int('B9AAA03F583183597C9DA14E07738A3F7F576CC19687427BFB9A400162787DF2D09BE04F2A874F1DFF85153D94A6928A30F52832A7FD64582B7E6AE9516AA5BD6124AEF0E1FB7B8162E3CB2B8C74D08267271D50EACED130C853036B78B36F11843C61591505E03CBEAD1D4F87571DE03CE4A453F57064BDE81164BF6DCDB913', 16)

# 计算私钥
e, d = calculate_keys(p, q)

print(f"d: {hex(d)}")
print(f"e: {hex(e)}")

这个代码将计算出 d,你可以使用它来创建私钥。

注意:这个代码需要 rsa 库,如果没有安装,可以通过 pip install rsa 来安装。

验证一下

在这里插入图片描述

这个方法也可以。pip install sympy

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值