加密首先要有public key,如果加密后的内容用来做http请求,可能还需要对其quote一下。
def test():
public_key = """-----BEGIN PUBLIC KEY-----
*******MIICIjANBgkqhkiG9w*******
-----END PUBLIC KEY-----
"""
import rsa
import base64
from urllib import parse
h = '{"type":"cat","limit":"2"}'
bp = bytes(public_key, encoding='utf8')
pk = rsa.PublicKey.load_pkcs1_openssl_pem(bp)
bh = bytes(h, encoding='utf8')
m = rsa.encrypt(bh, pk)
code = base64.b64encode(m).decode('utf-8')
code = parse.quote(code)
print(code)
return code
这里注意,python3中,给rsa传递参数,都是字节对象才行。
参考:1