Nguyễn Đức Cường • 17 ngày trước
import rsa, os
if not os.path.exists('cipher/rsa/keys'):
os.makedirs('cipher/rsa/keys')
class RSACipher:
def __init__(self):
pass
def generate_keys(self):
(public_key, private_key) = rsa.newkeys(1024)
with open('cipher/rsa/keys/publicKey.pem', 'wb') as p:
p.write(public_key.save_pkcs1('PEM'))
with open('cipher/rsa/keys/privateKey.pem', 'wb') as p:
p.write(private_key.save_pkcs1('PEM'))
def load_keys(self):
with open('cipher/rsa/keys/publicKey.pem', 'rb') as p:
public_key = rsa.PublicKey.load_pkcs1(p.read())
with open('cipher/rsa/keys/privateKey.pem', 'rb') as p:
private_key = rsa.PrivateKey.load_pkcs1(p.read())
return private_key, public_key
def encrypt(self, message, key):
return rsa.encrypt(message.encode('ascii'), key)
def decrypt(self, ciphertext, key):
try:
return rsa.decrypt(ciphertext, key).decode('ascii')
except:
return False
def sign(self, message, key):
return rsa.sign(message.encode('ascii'), key, 'SHA-1')
def verify(self, message, signature, key):
try:
return rsa.verify(message.encode('ascii'), signature, key,) == 'SHA-1'
except:
return False
Bình luận: