首页 > 编程语言 > 详细

python与rsa加密

时间:2021-03-02 15:38:24      阅读:22      评论:0      收藏:0      [点我收藏+]

pip install rsa

还需要一对公钥私钥:public.pem和private.pem


# 外网平台rsa公钥加密  数据方向:内网->外网
def rsa_public_encryption(message: str) -> str:
    # 加载公钥
    with open(public_key_path, ‘r‘) as f:
        pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())
    # rsa公钥加密,分段加密,64字节加密一次,加密出来的密文长度为128,base64长度为172
    message_encode = message.encode()
    message_len = len(message_encode)
    encry_len = 0
    secret_message_res = ‘‘
    while encry_len < message_len:
        msg = message_encode[encry_len:encry_len + 64]
        secret_message = rsa.encrypt(msg, pubkey)
        # base64编码返回字符串
        sec_mess_b64 = base64.b64encode(secret_message).decode()
        secret_message_res += sec_mess_b64
        encry_len += 64
    return secret_message_res


# 外网平台rsa私钥解密  数据方向:内网->外网
def rsa_private_decrypt(secret_message: str):
    # 加载私钥
    with open(private_key_path, ‘r‘) as f:
        privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())
    message_decode = ‘‘
    decode_len = 0
    message_len = len(secret_message)
    while decode_len < message_len:
        secret_msg_piece = secret_message[decode_len:decode_len + 172]
        # base64解码,172长度为单位
        b64decode_sec = base64.b64decode(bytes(secret_msg_piece, encoding=‘utf-8‘))
        # rsa私钥解密
        message = rsa.decrypt(b64decode_sec, privkey).decode()
        message_decode += message
        decode_len += 172
    # 返回json
    res_json = json.loads(message_decode)
    return res_json

python与rsa加密

原文:https://www.cnblogs.com/luozeyang/p/14468729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!