BUUCTF [b01lers2020]safety_in_numbers

给出了 RSA的标准public key生成
直接用标准库

from Crypto.PublicKey.RSA import *

with open(r'D:\浏览器下载\attachment\safety_in_numbers\pubkey.pem','r+') as f:
        key = f.read()

rsa = import_key(key)
print(rsa.n)
print(rsa.e)

得到n很大很大 e=65537
所以直接对c开e次方即可
这里要注意一下小端序的问题

from Crypto.Util.number import *
import gmpy2

e = 65537
with open(r'.\flag.enc','rb') as f:
        c = f.read()
c = int.from_bytes(c,byteorder='little')
m = gmpy2.iroot(c,e)[0]
print(long_to_bytes(m))
print(long_to_bytes(m)[::-1])
posted @ 2023-10-06 12:23  N0zoM1z0  阅读(28)  评论(0编辑  收藏  举报