python 写的RSA加密流程,做题时参考。
代号是标准的代号。
from Crypto.Util.number import *
import gmpy2
import libnum
# import uuid
# print(uuid.uuid4())
#产生两个大素数
p = libnum.generate_prime(1024)
q = libnum.generate_prime(1024)
#定义模数n
n= p*q
e = 65537 #公钥
#欧拉函数
phi = (p-1)*(q-1)
#模逆元
d = gmpy2.invert(e,phi) #私钥
# print(d)
# d=libnum.invmod(e,phi) #另一种计算模逆元的方法
# print(d)
msg = 'bf810ec3-e83d-448d-bd8a-65ee495e87a8'
#加密 计算密文
m = libnum.s2n(msg) #m表示明文
#加密 c表示密文
c = pow(m,e,n)
print(c)
# 解密
m= pow(c,d,n)
print(type(m))
print(libnum.n2s(int(m)).decode())
print('----------------------------------------')
import gmpy2
import libnum
# import uuid
# print(uuid.uuid4())
#产生两个大素数
p = libnum.generate_prime(1024)
q = libnum.generate_prime(1024)
#定义模数n
n= p*q
e = 65537 #公钥
#欧拉函数
phi = (p-1)*(q-1)
#模逆元
d = gmpy2.invert(e,phi) #私钥
# print(d)
# d=libnum.invmod(e,phi) #另一种计算模逆元的方法
# print(d)
msg = 'bf810ec3-e83d-448d-bd8a-65ee495e87a8'
#加密 计算密文
m = libnum.s2n(msg) #m表示明文
#加密 c表示密文
c = pow(m,e,n)
print(c)
# 解密
m= pow(c,d,n)
print(type(m))
print(libnum.n2s(int(m)).decode())
print('----------------------------------------')