RSA是一种常用加密算法,经常用在前端向后端传送密码的时候。
一、通过运行rsa.js文件加密
rsa.js文件下载地址:https://gitee.com/youchuanming/rsa_jsencrypt
import urllib.purse
import execjs
# 找到rsa.js文件里最下方的公钥参数,把这个参数修改成自己的公钥
js_file = './rsa.js'
with open(js_file, 'r', encoding='utf-8') as f:
js_code = f.read()
js = execjs.compile(js_code)
password = urllib.parse.quote(js.call('getRsaResult', 'xxxxxx'))
print('password:', password)
二、使用Python RSA相关库加密
import base64
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pksc1_v1_5
from Crypto.PublicKey import RSA
def encrpt(password, public_key):
rsakey = RSA.importKey(public_key)
cipher = Cipher_pksc1_v1_5.new(rsakey)
cipher_text = base64.b64encode(cipher.encrypt(password.encode()))
return cipher_text.decode()
# key需要修改成自己的
key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCC//WCWUQiDiIh8GhQfEwfU9OM7khBwlXE1HGEoBNakQJcr7iUPBUPADoik8d55z4KWCMgeImV+GHjGY/h8Vpy4nZ2AqmNlbz7MAtq9ln4p4EtgAvTqA8RFxV7SORd/GYio+mPh80T+zQJJwKpkxT1uewbU9LrSbqbkEtYpg9u2QIDAQAB'
public_key = '-----BEGIN PUBLIC KEY-----n' + key + 'n-----END PUBLIC KEY-----'
password = encrpt('xxxxxx', public_key)
print('password:', password)