本文主要是介绍RSA 非对称加密:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
非对称加密 RSA 拥有两个密钥, 分别为 公钥 和 私钥, 服务器端拥有公钥和私钥, 二客户端,只有公钥, 这个公钥可以随便传,即使被截获也没有关系, 加密使用公钥, 而解密, 只能用私钥
生成公钥和私钥:
生成的公钥和私钥, 需要保存到一个文件之中
from Crypto.PublicKey import RSA # 用来管理密钥rsa_key = RSA.generate(2048) # 生成公钥和私钥# 获取私钥
private_key = rsa_key.export_key()# 获取公钥
public_key = rsa_key.public_key().export_key()with open("rsa_public_pem.txt", "wb") as f:f.write(public_key)with open("rsa_private_key_pem.txt", "wb") as f:f.write(private_key)
加密:
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
import base64message = "我爱python编程, 励志成为一名伟大的爬虫大佬!"f = open("rsa_public_pem.txt", "r", encoding="utf-8")# 使用公钥创建一个 密钥
rsa_key = RSA.import_key(f.read())# 使用创建的密钥来创建一个rsa 加密对象
rsa = PKCS1_v1_5.new(rsa_key)# 加密数据
miwen = rsa.encrypt(message.encode("utf-8"))# 使用b64 编码
result = base64.b64encode(miwen).decode("utf-8")
print(result)
解密:
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
import base64# 准备密文
miwen = "ToumbsMmQphEDsgdW5AKaHgpEY1tU93MDL9t9zrjn/xsohIoi2fVfwcsqcyv28JJvJLEeZJ7EAV18rGNP6p+k1WkQHMERIez/NRjNvBWIuoZdb+HGqWQQB5yiOS9nFo6DY1muYrYBPJpUJ0+eXfH8N8+07hGLvJlpYtM4OqfMVC45+dYx9FBWNwHsRG8V0kHPDPCzMN06oFqIXjHulFFFvJ/GkEqaLENCmI713Jy5L7jQh0ff2u0YSIHujTYMvhzgEKt4ZoMr0yH4WcRpdYCLjnlhIW/GpV1gy8dXNQ7n80z/JJtsmuQ4VcquGx4LkEVnIhB62lMuUaVn1NliEBPdg=="# 读取私钥
f = open("rsa_private_key_pem.txt", "r", encoding="utf-8")# 导入私钥
rsa_key = RSA.import_key(f.read())# 使用私钥创建rsa对象
rsa = PKCS1_v1_5.new(rsa_key)# 解密
mingwen = rsa.decrypt(base64.b64decode(miwen), None)print(mingwen.decode())
这篇关于RSA 非对称加密:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!