# -*- coding: utf-8 -*-
import base64
from Crypto.PublicKey import RSA
key = RSA.generate(2048)
private_key = key.export_key() #私钥解密
public_key = key.publickey().export_key()   #公钥加密
print(f"私钥是{private_key}\n公钥是{public_key}")


# private_key = RSA.import_key(open('private_key.pem').read()) #加载私钥
# public_key = RSA.import_key(open('public_key.pem').read()) #加载公钥

private_key = RSA.import_key(private_key) #加载私钥
public_key = RSA.import_key(public_key) #加载公钥
#使用公钥加密数据
from Crypto.Cipher import PKCS1_OAEP
cipher = PKCS1_OAEP.new(public_key)
encrypted_data = cipher.encrypt(b'Hello World') #传入的是二进制数据 返回的是加密后的二进制数据


encoded_data = base64.b64encode(encrypted_data).decode('utf-8')  #RSA加密后得到的是二进制数据,如果要将其转换为可读的中文字符串,可以使用Base64编码。Base64是一种用于将二进制数据转换为ASCII字符串的编码方式
print(encoded_data)#加密后的数据

# 使用私钥解密数据
from Crypto.Cipher import PKCS1_OAEP
cipher = PKCS1_OAEP.new(private_key)
decrypted_data = cipher.decrypt(encrypted_data) #传入的是二进制数据
print(decrypted_data.decode("utf-8"))

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐