pyhton用RSA之ENCRYPTION_PKCS1加解密

发布时间 2023-06-13 11:06:22作者: 阿华阿

背景:基于项目接口登录密码加密后请求

支持PKCS#1、PKCS#8等密钥格式
 
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipher
class test_jiam():
def rsa_decrypt(self,cipher_text):
"""校验RSA加密 使用私钥进行解密"""
#读取公钥,可以用自己公钥代替
public_key=self.read_config('PRIVATE_KEY')
#公钥处理
public_key="-----BEGIN RSA PRIVATE KEY-----\n" + public_key +"\n-----END RSA PRIVATE KEY-----"
pub_key = RSA.importKey(public_key)
cipher = PKCS1_cipher.new(pub_key)
rsa_text = base64.b64encode(cipher.encrypt(cipher_text.encode("utf-8)"))) # 加密并转为b64编码
text = rsa_text.decode("utf8")
return text

def rsa_decode(self,text):
# 读取私钥,可用自己私钥代替
PRIVATE_KEY = self.read_config('PRIVATE_KEY')
PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" + PRIVATE_KEY + "\n-----END RSA PRIVATE KEY-----"
pri_Key = RSA.importKey(PRIVATE_KEY)
cipher = PKCS1_cipher.new(pri_Key)
back_text = cipher.decrypt(base64.b64decode(text.encode("utf8")), 0)
return back_text