使用Python对数据进行rsa加密

本文介绍了如何使用Python实现RSA非对称加密算法,包括获取公钥、加密过程以及注意事项。主要涉及get_public_key函数和str_to_rsa函数的应用。
摘要由CSDN通过智能技术生成
#!/usr/bin/python3
import base64
import json
import jsonpath
import requests
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
from base64 import b64decode, b64encode


def get_public_key():
    """
    备注:加密方式为rsa加密,先获取public_key
    :return str
    """
    url = "http://ip/publicKey" #获取公钥
    response = requests.request("GET", url).text
    res = json.loads(response)
    _public_key = jsonpath.jsonpath(res, "$..data.publicKey")
    return _public_key[0]


def str_to_rsa(text: str):
    """"
    明文rsa加密
    :return:str
    """
    _public_key = get_public_key()
    __public_key = b64decode(_public_key)
    rsa_key = RSA.importKey(__public_key)
    cipher = Cipher_pkcs1_v1_5.new(rsa_key)  # 创建用于执行pkcs1_v1_5加密或解密的密码
    cipher_text = base64.b64encode(cipher.encrypt(text.encode('utf-8')))
    _cipher_text = cipher_text.decode('utf-8')
    return _cipher_text


if __name__ =="__main__":
    _public_key = get_public_key()
    # print(_public_key)
    passwd = "Hello123$"
    txt = str_to_rsa(passwd)
    print(txt)

      PS: 需要注意在安装Crypto库的时候,可能会安装上了无法使用,原因可能是依赖的安装的文件夹与包名名称不一致导致,修改文件夹与名称一致即可

RSA算法是一种非对称加密算法,它使用一对密钥进行加密和解密。公钥用于加密信息,私钥用于解密信息

RSA算法具有以下优点:

  • 加密强度高,安全性好。
  • 加密和解密速度快。
  • 支持数字签名。

RSA算法也存在以下缺点:

  • 密钥长度较长,需要较大的存储空间和计算资源。
  • 对明文的长度有限制。
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值