两个文件
1、通过网站分解公钥
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+
/AvKr1rzQczdAgMBAAE=
-----END PUBLIC KEY-----
RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网
分解结果:
公钥指数及模数信息:
key长度: | 256 |
模数: | C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD |
指数: | 65537 (0x10001) |
得到:
e=65537 n_16= 'C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD' n=int(n_16,16)
也可以通过网站SSL在线工具-公钥解析分解得到结果:
详细信息
密钥类型
RSA
密钥强度
256
PN(e)
65537
PN(n)
8693448229604811919066606200349480058890565601720302561721665405 8378322103517
DER格式
303c300d06092a864886f70d0101010500032b003028022100c0332c5c64ae47182f6c1c876d42336910545a58f7eefefc0bcaaf5af341ccdd0203010001
2、通过网站分解n,得到p、q
p = 285960468890451637935629440372639283459 q = 304008741604601924494328155975272418463
3、解题
import gmpy2
import rsa
e=65537
n_16= 'C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD'
n=int(n_16,16)
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
d = gmpy2.invert(e, (q-1)*(p-1))
key = rsa.PrivateKey(n, e, int(d), p, q)
with open("C:\\Users\\Administrator\\Downloads\\41c4e672-98c5-43e5-adf4-49d75db307e4\\flag.enc", "rb+") as f:
f = f.read()
print(rsa.decrypt(f, key))
输出:
b'flag{decrypt_256}\n'