ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 使用 RSA 公钥加密数据

2022-06-24 12:04:37  阅读:181  来源: 互联网

标签:公钥 加密 Python RSA result key encrypt public


安装 pycryptodome 库

pip install pycryptodome

使用 RSA 公钥加密数据

import base64
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pksc1_v1_5
from Crypto.PublicKey import RSA

def _encrpt(string, public_key):
    rsakey = RSA.importKey(public_key)  # 读取公钥
    cipher = Cipher_pksc1_v1_5.new(rsakey)
    # 因为encryptor.encrypt方法其内部就实现了加密再次Base64加密的过程,所以这里实际是通过下面的1和2完成了JSEncrypt的加密方法
    encrypt_text = cipher.encrypt(string.encode())  # 1.对账号密码组成的字符串加密
    cipher_text_tmp = base64.b64encode(encrypt_text)  # 2.对加密后的字符串base64加密
    return cipher_text_tmp.decode()

# 使用公钥加密
def gen_body(pwd, public_key=None):
    '''根据账号密码生成请求的body然后调用_encrpt方法加密'''
    if not public_key: public_key = '输入公钥'     # 输入对应的公钥
    key = '-----BEGIN PUBLIC KEY-----\n' + public_key + '\n-----END PUBLIC KEY-----'
    encrypt_res = _encrpt(pwd, key)
    return str_replace(encrypt_res)

# 文本替换
def str_replace(encoder):
    result = encoder.replace("+","-")
    result = result.replace("/","_")
    result = result.replace("=",",")
    return result

if __name__ == '__main__':
    PUBLIC_KEY = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANunOZNi98lS7GiaUdnFJbzVy5oxsLqsTetCRfp2pE3sD3pWGBa1xjqrU/+9VtcJC6KvHel0IMSmlfoCxXvlKQkCAwEAAQ=="
    print(gen_body("这是 public 测试 password",PUBLIC_KEY)) #输入要加密的密码```

问题解决

  • 报 ModuleNotFoundError: No module named 'Crypto' 错误

标签:公钥,加密,Python,RSA,result,key,encrypt,public
来源: https://www.cnblogs.com/kmswilliam/p/16408265.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有