安装依赖
pip install pycryptodome
生成密钥
# 1. 生成密钥对 from Crypto.PublicKey import RSA # 1. 生成密钥对 def generate_key_pair(): key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() return private_key, public_key
保存私钥公钥:
# 使用示例 if __name__ == "__main__": # 生成密钥对 private_key, public_key = generate_key_pair() print(f"私钥: {private_key}") print(f"公钥: {public_key}") # 公钥私钥保存到本地 with open("private_key.pem", "wb") as f: f.write(private_key) with open("public_key.pem", "wb") as f: f.write(public_key)
加解密封装
class RSAHelper: # 加载本地密钥 def __init__(self, key_path): # 加载公钥和私钥 self.private_key = RSA.import_key(open(key_path + '/private_key.pem').read()) self.public_key = RSA.import_key(open(key_path + '/public_key.pem').read()) # 加密 def encrypt(self, message): cipher = PKCS1_v1_5.new(self.public_key) encrypted_message = cipher.encrypt(message.encode()) return base64.b64encode(encrypted_message).decode() # 解密 def decrypt(self, encrypted_message): sentinel = b"DECRYPTION_FAILED" cipher = PKCS1_v1_5.new(self.private_key) decrypted_message = cipher.decrypt(base64.b64decode(encrypted_message), sentinel) return decrypted_message.decode() # 获取公钥 def get_public_key(self): # 公钥字符串 return self.public_key.export_key().decode()
调用示例
if __name__ == "__main__": rsa_helper = RSAHelper("./") print(rsa_helper.get_public_key()) encrypted = rsa_helper.encrypt("123456rterter345345") print(encrypted) print(rsa_helper.decrypt(encrypted))