这个软件居然不保存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 来安装。