公钥加密与私钥解密都需要安装rsa,安装代码如下
pip install rsa
公钥加密:
import rsa
#如何生成public.pem在前面“生成公钥与私钥”文章中已说过
with open("public.pem", "rb") as f:
public_key_bytes = f.read()
#将公钥对应 的流转成公钥对象
public_key = rsa.PublicKey.load_pkcs1(public_key_bytes)
#定义要加密的字符串
message = "hello"
text = rsa.encrypt(message.encode(), public_key)
#使用base64进行编码
import base64
#base64对加密后的内容进行编码
text = base64.b64encode(text).decode()
#不妨打印看一下
print(text)
私钥解密:
import rsa
import base64
#这一串是公钥加密后打印获得的字符串
sign_text = "QL1fnPTt3KDUfdcfWcSuJ5+jpsTYneO4V3mVuA9lBSM/o7QQL9X78va4EMDTwljo7nNntpXAp6+DYMXIi7nHZyHahCUuKQcamnq0lDj/Kg2xVf7Ly0pdcLkQ1UHP4z50FbZFeOi7h/8NRiCQpx37NqaKNYYDbWviNbYbOrpAFtG7BUf+k402dP4yWUTLiD4uLqvjwX5TAgb7EMhMQ9bmpyeIaYFmi+EQX62ObPsZLywp9coGM2iFxA5T5fO9lm6mUewAbyti3BJr3bb3VWyf1pXRhDuQr+HpQFpBRKAtkg5PNJ3DbosLZOYxuYEut1SuUaXSOZBMCMgwfa/b5ynLnA=="
#使用base64对加密后的内容进行解密
text = base64.b64decode(sign_text.encode())
#使用私钥解密
with open("private.pem", "rb") as f:
private_key_bytes = f.read()
#转成私钥对象
private_key = rsa.PrivateKey.load_pkcs1(private_key_bytes)
#使用私钥解密
message = rsa.decrypt(text,private_key).decode()
print(message)
打印massage后可以看到结果是使用公钥加密前的“hello”