使用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, 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算法也存在以下缺点:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络工程师笔记3

IP地址类型 A类 255.0.0.0B类 255.255.0.0C类 255.255.255.0D类 E类 子网掩码:从左到右连续的确定网络位 2-4-8-16-32-64-128-256 128 : 1000 0000 64 : 0100 0000 32 : 0010 0000 16 : 0001 0000 8 &am…

vue3 开发记录

1.引入nprogress插件,显示未声明文件 无法找到模块“nprogress”的声明文件。 解决方法: vite-env.d.ts // 解决引入模块的报错提示 declare module "nprogress";2.在 .evn 文件中创建了自定义环境变量 VITE_APP_BASE_URL 但在项目中使用时出…

【c语言】探索联合和枚举---解锁更多选择

前言 上一篇 讲解的是结构体相关知识,接着本篇主要讲解的是 联合和枚举 相关知识 结构体、联合体和枚举都属于 自定义类型。 那么接下来就跟上我的节奏,准备发车~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误&#xf…

如何在群晖NAS中开启FTP服务并实现公网环境访问内网服务

文章目录 1. 群晖安装Cpolar2. 创建FTP公网地址3. 开启群晖FTP服务4. 群晖FTP远程连接5. 固定FTP公网地址6. 固定FTP地址连接 本文主要介绍如何在群晖NAS中开启FTP服务并结合cpolar内网穿透工具,实现使用固定公网地址远程访问群晖FTP服务实现文件上传下载。 Cpolar内…

同局域网共享虚拟机(VMware)

一、前言 首先我们先来了解下 VMware 的三种网络模式桥接模式、NAT模式、仅主机模式,网络类型介绍详情可以参考下我之前的文档 Linux系统虚拟机安装(上)第三章 - 第9步指定网络类型。了解三种网络模式的原理之后,再来剖析下需求&…

Python进阶学习:axis=0和axis=1的区别和用法

Python进阶学习:axis0和axis1的区别和用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和…

Python is not set from command line or npm configuration 报错解决

问题 在 npm install 的过程中提示 Python is not set from command line or npm configuration 的报错,相信不少朋友都遇到过,出现这个问题的原因是缺少 python 环境所导致的。 解决方法 1、安装 python 官网:https://www.python.org/dow…

Halcon 求孔洞的大小和数量

文章目录 适用场景汽车按钮案例 适用场景 在工业中可以利用孔洞的多少和孔洞的大小来分析出产品的缺陷问题,例如一个产品有8个孔洞,孔洞多和少都会被识别为不合格产品,或者求出孔洞的面积,如果孔洞的大小超出一定的范围将视为不合…

第十四课 PCB保姆级规则设置(三)

1.SMT:贴片规则,默认设置 2.Mask阻焊:绿油阻焊外扩(4mil),助焊0mil 3.器件之间的距离 1)有丝印的话,根据空间和整体调节,丝印不冲突就可以 2)没有丝印&…

C++惯用法之空基类优化

相关系列文章 C惯用法之Pimpl C惯用法之CRTP(奇异递归模板模式) C之std::tuple(二) : 揭秘底层实现原理 目录 1.空类 2.空基类优化 3.内存布局原则 4.实例分析 5.总结 1.空类 C 中每个对象的实例都可以通过取地址运算符获取其在内存布局中的开始位置,因此每个类…

【亚马逊云科技】通过Amazon CloudFront(CDN)快速访问资源

文章目录 前言一、应用场景二、【亚马逊云科技】CloudFront(CDN)的优势三、入门使用总结 前言 前面有篇文章我们介绍了亚马逊云科技的云存储服务。云存储服务主要用于托管资源,而本篇文章要介绍的CDN则是一种对托管资源的快速访问服务&#…

18个惊艳的可视化大屏(第九辑):智慧旅游和智慧景区

本次带来18个页面是智慧旅游和智慧景区的作品分享,希望大家能从作品中寻找到灵感 ,创造更新的应用。 数字孪生技术可以为智慧旅游/智慧景区提供数字化模型和数据支持,帮助景区管理者更好地了解景区的运营情况和游客需求,从而提供更…

为什么企业需要使用云电子邮箱?

作为一家机构的负责人,您比大多数人都清楚,您的工作日不会在下午5点就结束。很可能,当您的员工已经打卡下班回家很久之后,您还在以这样或那样的方式继续工作。作为一名企业主,埋头苦干对您来说并不是什么新鲜事&#x…

分巧克力(蓝桥杯)

文章目录 分巧克力题目描述二分算法 分巧克力 题目描述 儿童节那天有 K位小朋友到小明家做客。 小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N块巧克力,其中第 i 块是 HiWi 的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出 K …

sawForceDimensionSDK安装,sigma7+ros

force dimension的sdk中没有关于ros,借助开源的sawForceDimensionSDK实现对于数据的封装和可视化,方便后续使用 链接: GitHub - jhu-saw/sawForceDimensionSDK 具体步骤: 安装qt和ros,官网下载Force Dimension SDK …

微信小程序 uniapp+vue实习助学岗位系统springboot/php/python/nodejs

(一)研究目标: 对于本微信小程序实习系统的设计来讲,主要是采用了java语言和mysql数据库来完成对系统的设计,根据某高校的实习系统,提出解决问题的一个可行性方法,可以在手机端就能完成我们的工…

对话式人工智能:改变电子学习的格局

革命性教育体验:对话式AI导师如何改变学习方式 对话式人工智能和电子学习的融合不仅仅是技术进步,更是技术进步。 这是教育范式的一场革命。 这种整合正在重塑我们的学习方式,打破传统障碍,创造更具互动性、个性化且易于访问的学习…

科普SCADA系统

什么是SCADA系统? 在20世纪中期,工业设施依靠人员对设备进行物理控制和监控。然而,随着行业规模的扩大,设备控制的创新出现了。20世纪70年代初,监控与数据采集(SCADA)系统被发明。该系统允许自…

探索IP地址定位工具:解读IP数据云的功能与优势

在当今数字化时代,IP地址定位工具成为了许多领域中不可或缺的技术支持,为网络安全、地理定位服务和个性化推荐等提供了重要数据支持。其中,IP数据云作为一种领先的IP地址定位工具,具有一系列功能和优势,本文将对其进行…

Jenkins设置root权限(13)

1.将 Jenkins 账号加入到 root 组中。 gpasswd -a jenkins root2.修改/etc/sysconfig/jenkins文件,添加如下配置。 JENKINS_USER"root" JENKINS_GROUP"root"3.重启 Jenkins service Jenkins restart4.验证 groups jenkins jenkins : jenkin…