RSA加密
import base64
import rsa
class RSAendecrypt(object):
"""
generate public and private key (生成公钥和私钥)
encrypt passwd (加密数据)
decrypt passwd (解密数据)
"""
def __init__(self, filepath=None):
if filepath is None:
filepath = './'
self.filepath = filepath
def generatekey(self):
pub, pri = rsa.newkeys(1024)
pub_key = pub.save_pkcs1().decode()
pri_key = pri.save_pkcs1().decode()
with open(self.filepath + 'private.pem', 'w') as f:
f.write(pri_key)
with open(self.filepath + 'public.pem', 'w') as f:
f.write(pub_key)
def encrypt(self, enstr):
with open(self.filepath + 'public.pem', 'r') as f:
result = f.read()
pub = rsa.PublicKey.load_pkcs1(result)
endata = rsa.encrypt(enstr.encode('utf-8'), pub)
return base64.b64encode(endata).decode('utf-8')
def decrypt(self, destr):
with open(self.filepath + 'private.pem', 'r') as f:
result = f.read()
pri = rsa.PrivateKey.load_pkcs1(result)
dedata = rsa.decrypt(base64.b64decode(destr), pri)
return dedata.decode('utf-8')
if __name__ == '__main__':
mingwen = input("明文:")
rsadate = RSAendecrypt()
rsadate.generatekey()
encry = rsadate.encrypt(mingwen)
print(encry)
decry = rsadate.decrypt(encry)
print(decry)