python实现的jsencryp加密后端无法解密_python 3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串...

2023-11-04

# coding=utf-8

import base64

import rsa

__all__ = ['rsa_encrypt']

def _str2key(s):

# 对字符串解码

b_str = base64.b64decode(s)

if len(b_str) < 162:

return False

hex_str = ''

# 按位转换成16进制

for x in b_str:

h = hex(x)[2:]

h = h.rjust(2, '0')

hex_str += h

# 找到模数和指数的开头结束位置

m_start = 29 * 2

e_start = 159 * 2

m_len = 128 * 2

e_len = 3 * 2

modulus = hex_str[m_start:m_start + m_len]

exponent = hex_str[e_start:e_start + e_len]

return modulus, exponent

def rsa_encrypt(s, pubkey_str):

'''

rsa加密

:param s:

:param pubkey_str:公钥

:return:

'''

key = _str2key(pubkey_str)

modulus = int(key[0], 16)

exponent = int(key[1], 16)

pubkey = rsa.PublicKey(modulus, exponent)

return base64.b64encode(rsa.encrypt(s.encode(), pubkey)).decode()

使用时直接调用rsa_encrypt(s, pubkey_str)方法就好了,第一个参数为待加密字符串,第二个参数为公钥,返回值为加密后的字符串

其中_str2key(s)方法是在https://www.cnblogs.com/masako/p/7660418.html这篇文章的基础上做了细微改动,可能是由于python版本问题,原文章中的代码在python3.7中无法直接使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python实现的jsencryp加密后端无法解密_python 3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串... 的相关文章

  • SpringBoot集成XxlJob分布式任务调度中心(超详细之手把手教学)

    一 前言 废话就不多说了 介绍Xxl Job的网上已经有很多 本文就不多加复制粘贴了 直接步入第二步 PS 本文包括Xxl Job分布式定时任务调度中心的搭建 以及SpringBoot集成XxlJob的全过程 如果不想了解搭建的小伙伴可以直
  • 判断加密方式

    如何判断密文的加密方式 1 如果密文是十进制 字符范围是 0 9 可以猜测是ASCII编码 2 如果密文由 a z A Z 和 构成 特别是末尾有 那么判断可能是Base64编码 Base64在线解码网址 BASE64加密解密 3 如果密文
  • Docker 部署 RocketMQ

    文章目录 安装nameserver 拉取镜像 运行容器 出现问题卸载 安装broker 创建配置文件 运行容器 出现问题卸载 安装控制台 拉取镜像 运行容器 出现问题卸载 安装nameserver 拉取镜像 docker pull rock
  • 时序预测

    时序预测 MATLAB实现ARIMA时间序列预测 armax函数 本程序基于MATLAB的armax函数实现arima时间序列预测 实现了模型趋势分析 序列差分 序列平稳化 AIC准则模型参数识别与定阶 预测结果与误差分析过程 逻辑清晰 数
  • 【NLP实践】使用Pytorch进行文本分类——BILSTM+ATTENTION

    目录 网络结构 代码实现 Attention计算 模型效果 调参 相关文章 网络结构 代码实现 class TextBILSTM nn Module def init self config TRNNConfig char size 500
  • 学习Vue 之 创建一个 Vue 应用

    文章目录 Vue js 概述 了解 Vue 创建一个 Vue 应用 参考 Vue js 概述 计划学习前端 已有一些HTML js CSS的基础知识 下一步学习Vue js 以下是一些适合新手的Vue js教程 你可以根据自己的实际情况和需
  • Python提示 TypeError: super(type, obj): obj must be an instance or subtype of type问题

    Python提示 TypeError super type obj obj must be an instance or subtype of type问题 简述问题 在工作中有一天将debug下正常工作的python代码编译之后运行却抛出
  • 奇迹mu修改服务器名,奇迹MU 红名设置调整方案说明

    尊敬的用户 经过与游戏制作方的沟通 已经确认本次游戏版本中红名设置突然调整的原因 由于韩国奇迹MU之外的所有服务器 国际服 日服 中国服务器等 将对红名设置进行统一设置 红名设置将恢复成为Season 8版本期间的模式 红名2阶段之后可以继
  • 使用JAVA连接MySQL,储存歌曲,图片,影片文件

    MySQL中创建数据表 存放歌曲等文件字节流 使用longblob字段类型 我这个只是演示所以就一个字段 如果想比较好的管理文件 不要这么搞 create dadabase ttest use ttest create table musi
  • 【stm32单片机基础】按键状态机实现长按和短按

    stm32单片机基础 按键状态机 文章目录 stm32单片机基础 按键状态机 前言 一 按键的消抖 二 按键状态机实现 0 状态机模式 1 单个按键检测 2 单个按键实现长按和短按 三 长按和短按测试示例 四 多按键检测 按键处理经典例程
  • openEuler20.03如何安装图形化界面

    需求描述 需要安装图形界面方便操作 详细步骤 1 安装ukui图形界面 字体库 root localhost yum install ukui y root localhost local yum groupinstall fonts y
  • 2021白盒测试常用工具介绍【建议收藏】

    白盒测试工具一般是针对代码进行测试 测试中发现的缺陷可以定位到代码级 根据测试工具原理的不同 又可以分为静态测试工具和动态测试工具 1 Jtest 是一个代码分析和动态类 组件测试工具 是一个集成的 易于使用和自动化的Java单元测试工具
  • js 在数组对象中模糊搜索(直接上代码)

    1 测试数据 学生对象数组 var students id 1 name 张三 age 14 id 2 name 李四 age 15 id 3 name 王五 age 17 id 4 name 赵六 age 18 2 查询操作 根据下标查询
  • 写论文的开源免费神器汇总

    科研办公学习的开源免费神器汇总 一 公式 1 Mathtype 是一款专业的数学公式编辑工具 理科生专用的工具 mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号 2 Mathpix Mathpix可以将图片 PDF
  • 非对称加密算法--RSA加密原理详解

    密码学是在编码与破译的斗争实践中逐步发展起来的 并随着先进科学技术的应用 已成为一门综合性的尖端技术科学 密码学发展史 在说RSA加密算法之前 先说下密码学的发展史 其实密码学的诞生 就是为了运用在战场 在公元前 战争之中出现了秘密书信 在
  • ETCD 简介 + 使用

    随着CoreOS和Kubernetes等项目在开源社区日益火热 它们项目中都用到的etcd组件作为一个高可用 强一致性的服务发现存储仓库 渐渐为开发人员所关注 在云计算时代 如何让服务快速透明地接入到计算集群中 如何让共享配置信息快速被集群
  • getPerspectiveTransform通过4对点确认透视变换矩阵的原理分析

    老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 图像透视变换 Perspective Transformation 的本质是将图像从一个几何平面投影到另一个几何平面 透视变换保证同一条
  • html禁止Input文本输入缓存的两种方法

    默认情况下大多数的浏览器都会缓存input输入框的值 当输入框获取焦点时缓存值就会出现 我们只能通过清除浏览器的缓存来清除输入框的缓存值 这里介绍两种去掉输入框缓存的方法 input 的属性autocomplete 默认为on 其含义代表是
  • matlab自带各种分类器的使用示例

    目前了解到的 MATLAB 中分类器有 K 近邻分类器 随机森林分类器 朴素贝叶斯 集成学习方法 鉴别分析分类器 支持向量机 现将其主要函数使用方法总结如下 更多细节需参考 MATLAB 帮助文件 设 训练样本 train data 矩阵

随机推荐

  • 二叉树的认识

    愚昧将使你达不到任何成果 并在失望和忧郁之中自暴自弃 达芬奇 目录 一 二叉树的概念 二 二叉树的特点 结构 三 三种特殊的二叉树 1 斜树 2 满二叉树 3 完全二叉树 四 二叉树的性质 五 二叉树的存储方式 1 顺序存储 2 链式存储
  • 【前端】Vue项目:旅游App-(2)TabBar:搭建TabBar、循环获取动态数据、相关工具封装

    文章目录 目标 代码与过程 静态html css 改成动态数据 效果 总代码 修改或新建的文件 tabbarData js tab bar vue load assets App vue 目标 有两种实现方式 把数据写死 静态 直接写在ht
  • DotNetZip知识系列:用来解压缩zip

    说明 这是 net平台可以使用的一个库 NuGet Gallery Package Downloads for DotNetZip 这是官方文档 About DotNetZip DotNetZip Documentation
  • 2022.03.06 mysql8拉链表-测试

    1 创建业务表并初始数据 drop table if exists mall user create table mall user uid bigint unsigned auto increment comment 用户唯一ID pri
  • shell快速迁移海量文件的两种方案

    最近遇到这样一个小需求 linux服务器上某个目录下有几百万个文件 导致各种操作不便 急需转移历史文件 保留90天 同时对转移到的目录下新建日期文件夹 按文件创建来存放文件 想到了两种解决方案 第一种直接按创建日期find 这样需检索整个目
  • 容器化部署dex适配openldap

    ldap LDAP 在OIDC流程中是用来做身份认证服务的 包括LDAP身份认证服务器 自己的第三方应用需要调用LDAP的客户端接口 用以访问LDAP服务器进行身份验证 作用 用户验证 用户管理 ldap它是用来做统一用户身份认证的 即 你
  • 电机磁链和反电势系数关系

    电机磁链和反电动势系数辨识 刚接触电机 不久 很容易就被绕晕了 磁链 空载相反电势幅值 电角频率 text 磁链 varphi frac text 空载相反电
  • img 显示response图片数据

    url http blog csdn net ykf69177 article details 8655881 url img src servlet IdentityServlet
  • 将分数阶工具箱FOMCON加入simulink中

    1 下载FOMCON toolbox压缩文件 网址为gitee下载地址 2 将下载的压缩文件放于安装matlab的文件夹 gt toolbox 并解压缩 3 添加路径 点击设置路径 添加文件夹 添加并包含子文件夹 点击保存 4 关闭matl
  • Linux基础命令-history历史记录

    Linux基础命令 alias设置别名 Linux学习中的博客 CSDN博客 文章目录 前言 一 history命令介绍 二 语法及参数 三 参考实例 总结 前言 在工作中 经常会需要多次重复某一个命令 或者需要查看之前执行过什么命令 那么
  • C/C++程序算法小练习--大整数减法

    大整数减法 include
  • 《软件测试》第10章 数据流测试

    本节是根据书籍 软件测试 Paul C Jorgensen著 中第十章的内容进行学习总结 更详尽的内容请查看作者原文 另在此也感谢原著作者的著文分享 本章主要内容如下
  • linux 安装jdk

    1 下载JDK jdk下载地址 http www oracle com technetwork java javase downloads jdk8 downloads 2133151 html 2 安装jdk 因为我安装的CentOS7
  • 项目实战二:关于element-ui前端框架自定义排序功能

    前言 近期 前端在开发的过程中 需要根据列表中字符串形式的数字进行升序或者降序排序 直接排序肯定是有问题的 这时就需要用到自定义排序的方式了 还有就是先将字符串的数字转化为Number类型的 具体代码如下 开启排序
  • blender建模常用建模快捷键

    编辑物体 M2选取 M2 SHIFT选取多个 A全选 B M1矩阵选择 C M1笔刷选择 CTRL M1套索选择 CTRL SHIFT M1取消套索选择 ALT M2选择边循环 面 CTRL ALT M2环边选择 线 CTRL 小键盘的 扩
  • 安卓移动应用开发之从零开始写安卓小程序2

    实验二 安卓文件的简介和我们的第一个安卓小程序 发布文章时没有保存 导致文章不对 在此抱歉 这次补上了 一 HelloWorld创建 1 File New NewProject 名字我们就写HelloWorld 其他都默认 包名可能会和我不
  • Spring Security入门

    1 Spring Security 简介 Spring Security 是一个高度可定制的身份验证和访问控制框架 它基于 Spring 框架 并可与 Spring 全家桶无缝集成 该框架可以精确控制用户对应用程序的访问 控制用户的角色和权
  • 二级路由dhcp关闭连不上wifi_手把手教你天翼校园网开wifi

    温馨提示 1 非广东海洋大学的学生或所用校园不是天翼校园网的童鞋可以酌情忽略本推文 2 为照顾小白 本文比较详细 请各位耐心阅读 天翼校园网大概是我见过最恶心的校园网了 表面说着是为了 保证上网环境安全 强制一号一终端 还不能开热点 实际上
  • Nginx配置origin限制跨域请求(应对等保)

    Nginx需要修复一个安全漏洞 这个需要根据客户端传递的请求头中的Origin值 进行安全的跨站策略配置 目的是对非法的origin直接返回403错误页面 配置如下 1 在http中定义一个通过map指令 定义跨域规则并返回是否合法 htt
  • python实现的jsencryp加密后端无法解密_python 3 实现js中JSEncrypt encrypt方法,rsa模块根据字符串公钥生成加密字符串...

    coding utf 8 import base64 import rsa all rsa encrypt def str2key s 对字符串解码 b str base64 b64decode s if len b str lt 162