使用Python对数据进行rsa加密

#!/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, b64encodedef get_public_key():"""备注:加密方式为rsa加密,先获取public_key:return str"""url = "http://ip/publicKey" #获取公钥response = requests.request("GET", url).textres = 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_textif __name__ =="__main__":_public_key = get_public_key()# print(_public_key)passwd = "Hello123$"txt = str_to_rsa(passwd)print(txt)

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

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

RSA算法具有以下优点:

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

RSA算法也存在以下缺点:

  • 密钥长度较长,需要较大的存储空间和计算资源。
  • 对明文的长度有限制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/501420.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java 基础】闲话 ClassLoader 和 SPI (一)

文章目录 引子双亲委派模型你真的明白了吗? 双亲委派“不够用了”SPI机制 其他琐碎 引子 有别于 java 提供的 IO 模块,java 中的classloader主要是用来加载类的,当然除了加载类,也可以加载资源文件。 那么首先我们会问一个问题&…

【内部消息】24上半年软考可能支持平板、PC和手机等多平台报名

根据内部消息,软考网上报名系统正在改革,之前只能通过PC端报名的,下次报名可能支持平板、手机等多终端进行网上报名了。现在官方并没有确切消息发出,这次变动可能发生在2024上半年,也有可能得到下半年才能实行。以下是…

优质线路、智能加速,向日葵助你轻松进行海外远控

如今,海外远控的需求越来越普遍。无论是企业,还是个人工作室,只要我们的工作生活需要接触到一些“海外元素”,需要进行跨境作业,那么远程控制都可以帮助到我们。 但传统的远程控制在进行海外远控时,往往会…

iconv 更改字符串编码操作

概要 在日常开发中,中文字符乱码是一个经常遇到的问题。在解决此问题时,遇到一个比较好用的字符串编码开源库,在此进行总结。 整体思路流程 iconv官网地址:http://www.gnu.org/software/libiconv/ 这里主要使用的相关接口&…

查看网络连接的netstat

netstat是一个监控TCP/IP网络的非常有用的工具,可以显示路由表、实际的网络连接,以及每一个网络接口设备的状态信息,可以让用户得知目前都有哪些网络连接正在运作。netstat用户显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用…

全链路仿真压测系统

1.项目背景 目前常用的压测工具一般都是针对QPS这一个单一指标进行考量。即使支持编写脚本的工具也只是通过参数化模拟用户。但是实际用户是使用单独设备请求服务器,即一个用户就是一个tcp连接。 所以为了更真实的模拟用户行为,我们需要通过一个tcp连接…

精酿啤酒:从原料到成品的质量控制流程

质量控制是啤酒酿造过程中重要的一环,它涉及到从原料选择到成品生产的每一个环节。Fendi Club啤酒对其质量控制流程有着严格的要求,以确保产品的品质和一致性。 Fendi Club啤酒对原料的选择进行严格把关。他们选用上好、新鲜的麦芽、水和酵母等原料&…

【嵌入式】STM32控制脉冲个数

控制脉冲个数两种方式:中断技术、主从定时器技术。 1.主从模式控制 2.cubemx配置 2.1主定时器 以TIM3为例子。 1)从模式:失能; 2) 触发源:不选择; 3)内部时钟:勾选; 4)输出通道:CH2 pwm模式; 5)单脉冲模式:不选择;

Appium移动端自动化测试-(Java)

目录 环境搭建ADB调试工具adb构成adb工作原理adb常用命令电脑连接多个设备跟模拟器使用adb包名与界面名的概念如何获取包名和界面名文件传输获取app启动时间获取手机日志其他命令 Appium全自动化测试框架(python)冲错了序言 环境搭建Appium客户端安装App…

利用coze 搭建“全功能“微信客服(2)

紧跟上篇 利用coze 搭建"全功能"微信客服(1),不知道来龙去脉自行查阅 先表扬下coze: coze 是国内少数开放平台之一,里面提供各种插件还可以开发工作流,让你可以实现多模态全功能大模型 吐槽 没有API开放接口…

C语言第三十三弹---动态内存管理(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 动态内存管理 1、为什么要有动态内存分配 2、malloc和free 2.1、malloc 2.2、free 3、calloc和realloc 3.1、calloc 3.2、realloc 4、常见的动态内存的错…

【Linux C | 网络编程】套接字选项、getsockopt、setsockopt详解及C语言例子

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…