RSA实现 #
Python实现如下:
# encoding: utf-8
# pip install libnum
import libnum
from uuid import uuid1
#生成随机素数
p=libnum.generate_prime(1024)
q=libnum.generate_prime(1024)
e=65537
n=p*q
phi_n=(p-1)*(q-1)
#求逆元
d=libnum.invmod(e,phi_n)
m="flag{"+str(uuid1())+"}"
print(m)
#字符串转数字
m=libnum.s2n(m)
c=pow(m,e,n)
m=pow(c,d,n)
print(c, libnum.n2s(m))
# encoding: utf-8
# pip install gmpy2 pycryptodome
import gmpy2
from Crypto.Util.number import * #getPrime, bytes_to_long, long_to_bytes
from uuid import uuid1
#生成随机素数
p = getPrime(512)
q = getPrime(512)
e=65537
n=p*q
phi_n=(p-1)*(q-1)
#求逆元
d=gmpy2.invert(e,phi_n)
m="flag{"+str(uuid1())+"}"
print(m)
#字符串转数字
m=bytes_to_long(m)
c=pow(m,e,n)
m=pow(c,d,n)
print(c, long_to_bytes(m))