js 加解密 jsencrypt(非对称加密 rsa)
这是一个非对称加密的库,可以进行 rsa 加解密
使用方法
安装
npm install jsencrypt --save
jsencrypt rsa 加解密
let rsaStr = "这就是一个RSA加密的测试";let jsencryptObj = new jsencrypt();jsencryptObj.getKey(); //这个方法用来生成一个密钥对let publicKey = jsencryptObj.getPublicKey(); //得到公钥let privateKey = jsencryptObj.getPrivateKey(); //得到私钥let result1 = jsencryptObj.encrypt(rsaStr); //加密var st = jsencryptObj.decrypt(result1); //解密
上面是最基本的用法, 但是我们通常是 从前端接收到后端的数据,然后再去解密的,这里我们用 php 做后端加密数据,再用js 作前端来解密数据
这里我们首先产生一个公,私钥对
公钥字串
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNW0UTqFuKE4rA
NeUkPC5GhB8XcrcepL3jFLhK7YfD/spropSxqCH6PQ+VchIsCAGAtrKVyABjsGbU
yWa5ww90Z0FHo4UR2WnucvAlzmS2ENXSCif7W5Tj3lUddM9ZURwz3lWTA7QZLoIf
4AfR0zPJq0XhYzaAOdNoFm5AoZ27zSD3uBBL4vOXEfwZcOP6fQLrUkwSnKPj08BK
RRmwie3pJ2pU7eBX9NkS9oWU5u74LzJ+u4W6pdYGZo/TjTCyPF44Udkx+Rp9+BUg
Wd23rcVF2VmdWsZsgcIugjH/8z1sYbF0GdGe9CFM2CydxpzE91vqHEm7PaeaBWbe
JxsOdowdAgMBAAECggEAW04waWwav0qvD4UnC7RiUuIdvNw5hTt0XknxIwd3rPJV
aAQSnucFrHCHxEfCwqcQm/0fbC9P1QMyxXuC3CdZcMUUJlkTKnuDeQzLr9OTvcvA
djIj0sPGcIaDS6SLKMhChOFfJQ2pfuTJ4IhIkceZKBqp6GunaN3NHGOUw9HYAw6G
XrRvUXr4KSXwqAF83ufSKzV7jrsVu6Pn/59svwrJdYZp3jZ6eqDn6o5PLbVw55GM
81JsrDbv3gxcAsgbZnx9GlupgrRqto7MEJlF4q5sybCksDHbGWL2i1zRfbrtz93W
u56jEJKCDZq/cjRt19RKf03RaGgLa+Q+hVMEzrYWgQKBgQDyLG9pppRexlB3zp17
dJnesXXdfda9dy183e7bv9XTtrcZkbzLeOlWKVQcXgPozsQSPeoylGnq07ohVIze
Zn5DkRJ5G6A5L4RUUNva8B4IYue62yPG9is+UgENLZe77xh0/vBD8TGACX7FTvcp
qeN4u4aFJXdJu4ZDa7mBHdvIfQKBgQDZFLkqljYC8Lvy0GYgeEgBxOTwN78s1Wkg
38G6oN++glFBX6P0T7TffWv2AGKTNCi6xfVRpnPmKfuUV7qo6ltHp2PjkUhylVQy
9OyW4rA0cDFj/ng6PCa0gzApHOzE1zVgLyXJiEkB0IHZ96+Vk+T2GcT7zMAaqSm2
sgM+QcrEIQKBgHU8+8bK5QMowKXveZ/dp+v+P1A17nKUsonDqzHpIew3hVa0jhB2
/Yc/xL9i6EOZbaRjIvDPlqMfUvl1xCiat7+gCLBmpl9o2Ig1COpp2jA3KXX1RtG4
NOEbs/ScQNuzeUSScuCBcHRKpHuCqfcajsvRBOOKasBgLzSOfyS5vr/FAoGBALSy
vGPHv9P4weqgMLLMjNv0IsIXFWrjhmwX9fI9IaI6Zhrt2tNuWdhDVc/jiCqSm2jF
iaxay1UHE2TrFfSviCYAH3T5pX3D8d+s4xfCQPyVe3eKBlgrY+iU300Jx8kef06+
UE0Oxf7dqole1OjEwC1fTApx6GMI9zEdwvda2schAoGAKlzCLgEK3a/U6Tl/WVmo
at34IXFSK+GRQvuMYube6KYndwnWq5n6eqNN2FbrcDMhK+lsGz2f4BVvftFZeCu1
SHCoHpU9wObmQb64ZYf8BrIOkSCF6qDlQGoLaJhpCtLmzAxgABu4Ou1lC/dW7zcK
vnjq5XBRANexvfDtqU0MM28=
-----END PRIVATE KEY-----
私钥字串
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzVtFE6hbihOKwDXlJDwu
RoQfF3K3HqS94xS4Su2Hw/7Ka6KUsagh+j0PlXISLAgBgLaylcgAY7Bm1MlmucMP
dGdBR6OFEdlp7nLwJc5kthDV0gon+1uU495VHXTPWVEcM95VkwO0GS6CH+AH0dMz
yatF4WM2gDnTaBZuQKGdu80g97gQS+LzlxH8GXDj+n0C61JMEpyj49PASkUZsInt
6SdqVO3gV/TZEvaFlObu+C8yfruFuqXWBmaP040wsjxeOFHZMfkaffgVIFndt63F
RdlZnVrGbIHCLoIx//M9bGGxdBnRnvQhTNgsncacxPdb6hxJuz2nmgVm3icbDnaM
HQIDAQAB
-----END PUBLIC KEY-----
在php中利用公钥来加密 (注意一下,公钥字符串的定义,是使用的 长字符定义的方式)
php rsa 加密很简单
$str="这是一个后端加密,前端解密的实验,RSA算法";//这里得到了私钥的密钥$private_key = <<<"eto"
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNW0UTqFuKE4rA
NeUkPC5GhB8XcrcepL3jFLhK7YfD/spropSxqCH6PQ+VchIsCAGAtrKVyABjsGbU
yWa5ww90Z0FHo4UR2WnucvAlzmS2ENXSCif7W5Tj3lUddM9ZURwz3lWTA7QZLoIf
4AfR0zPJq0XhYzaAOdNoFm5AoZ27zSD3uBBL4vOXEfwZcOP6fQLrUkwSnKPj08BK
RRmwie3pJ2pU7eBX9NkS9oWU5u74LzJ+u4W6pdYGZo/TjTCyPF44Udkx+Rp9+BUg
Wd23rcVF2VmdWsZsgcIugjH/8z1sYbF0GdGe9CFM2CydxpzE91vqHEm7PaeaBWbe
JxsOdowdAgMBAAECggEAW04waWwav0qvD4UnC7RiUuIdvNw5hTt0XknxIwd3rPJV
aAQSnucFrHCHxEfCwqcQm/0fbC9P1QMyxXuC3CdZcMUUJlkTKnuDeQzLr9OTvcvA
djIj0sPGcIaDS6SLKMhChOFfJQ2pfuTJ4IhIkceZKBqp6GunaN3NHGOUw9HYAw6G
XrRvUXr4KSXwqAF83ufSKzV7jrsVu6Pn/59svwrJdYZp3jZ6eqDn6o5PLbVw55GM
81JsrDbv3gxcAsgbZnx9GlupgrRqto7MEJlF4q5sybCksDHbGWL2i1zRfbrtz93W
u56jEJKCDZq/cjRt19RKf03RaGgLa+Q+hVMEzrYWgQKBgQDyLG9pppRexlB3zp17
dJnesXXdfda9dy183e7bv9XTtrcZkbzLeOlWKVQcXgPozsQSPeoylGnq07ohVIze
Zn5DkRJ5G6A5L4RUUNva8B4IYue62yPG9is+UgENLZe77xh0/vBD8TGACX7FTvcp
qeN4u4aFJXdJu4ZDa7mBHdvIfQKBgQDZFLkqljYC8Lvy0GYgeEgBxOTwN78s1Wkg
38G6oN++glFBX6P0T7TffWv2AGKTNCi6xfVRpnPmKfuUV7qo6ltHp2PjkUhylVQy
9OyW4rA0cDFj/ng6PCa0gzApHOzE1zVgLyXJiEkB0IHZ96+Vk+T2GcT7zMAaqSm2
sgM+QcrEIQKBgHU8+8bK5QMowKXveZ/dp+v+P1A17nKUsonDqzHpIew3hVa0jhB2
/Yc/xL9i6EOZbaRjIvDPlqMfUvl1xCiat7+gCLBmpl9o2Ig1COpp2jA3KXX1RtG4
NOEbs/ScQNuzeUSScuCBcHRKpHuCqfcajsvRBOOKasBgLzSOfyS5vr/FAoGBALSy
vGPHv9P4weqgMLLMjNv0IsIXFWrjhmwX9fI9IaI6Zhrt2tNuWdhDVc/jiCqSm2jF
iaxay1UHE2TrFfSviCYAH3T5pX3D8d+s4xfCQPyVe3eKBlgrY+iU300Jx8kef06+
UE0Oxf7dqole1OjEwC1fTApx6GMI9zEdwvda2schAoGAKlzCLgEK3a/U6Tl/WVmo
at34IXFSK+GRQvuMYube6KYndwnWq5n6eqNN2FbrcDMhK+lsGz2f4BVvftFZeCu1
SHCoHpU9wObmQb64ZYf8BrIOkSCF6qDlQGoLaJhpCtLmzAxgABu4Ou1lC/dW7zcK
vnjq5XBRANexvfDtqU0MM28=
-----END PRIVATE KEY-----
eto;openssl_private_encrypt($str,$result,$private_key);//参数中的 $result 就是 rsa 的加密结果dump($result);//加密结果是一个二进制的数据,所以我们以base64一下传给前端echo base64_encode($result);
//结果 : CcNW2lFUQHYAhz60CHpwPbCXlqpZYQIK0gJZWeE5IPJG9Hw8e3arJ3j9PqsLrDyCRub5pOJQQqrOpMIyOZCP05BUcJRpBi+DR6Z7MrJuqw7B+283mZO/bPllhj6SILz7BD17zodmzw9E+QZG/DdLouOGVKHiirU9STFRgD3DiN93Rj8JzK70gNCnWrEtrCfHA+NdagLCdUEITxf3DL574ZlUXrSIvCj/Rf48/gXWypxG333Pp/IswHtBL6UOuiKGyY//t2aTqCgWRT8qy3nvWAXfH4WgePe+irPYxwOQkXh90oSiRDT2gLhnLV3ZWSSMqaAfCgKNKsCF+uGdONwMiw==
js 进行解密
把php中的结果字符串得到
解密失败, 有太神帮我看一下 问题在哪相关文章:
js 加解密 jsencrypt(非对称加密 rsa)
这是一个非对称加密的库,可以进行 rsa 加解密 使用方法 安装 npm install jsencrypt --save jsencrypt rsa 加解密 let rsaStr "这就是一个RSA加密的测试";let jsencryptObj new jsencrypt();jsencryptObj.getKey(); //这个方法用来生成一个密钥对…...
xlua游戏热更新(lua访问C#)
CS.UnityEngine静态方法访问unity虚拟机 创建游戏物体 CS.UnityEngine.GameObject(new by lua);静态属性 CS.UnityEngine.GameObject(new by lua); -- 创建 local camera CS.UnityEngine.GameObject.Find(Main Camera); --查找 camera.name Renamed by Lua;访问组件 loca…...
04-Spring中Bean的作用域
Bean的作用域 scope的属性值 属性值作用singleton默认单例prototype原型每调用一次getBean()方法则获取一个新的Bean对象 , 每次注入的时候都是新对象request一个请求对应一个Bean仅限于在WEB应用中使用 , 需要引入web的框架如SpringMvc(global) session一个会话对应一个Bean…...
xlua游戏热更新(C#访问lua)
xlua作为Unity资源热更新的重要解决方案api,在Tecent重多游戏中被采用,本文通过案例去讲解xlua代码结构层次。 /** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tence…...
【数据结构】二叉树经典例题---<你真的掌握二叉树了吗?>(第一弹)
一、已知一颗二叉树如下图,试求: (1)该二叉树前序、中序和后序遍历的结果。 (2)该二叉树是否为满二叉树?是否为完全二叉树? (3)将它转换成对应的树或森林。 (4)这颗二叉树的深度为多少? (5)试对该二叉树进行前序线索化。 (6)试对…...
基于springboot实现桥牌计分管理系统项目【项目源码】
基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#…...
机器学习——朴素贝叶斯
目录 一、贝叶斯方法 背景知识 贝叶斯公式 二、朴素贝叶斯原理 判别模型和生成模型 1.朴素贝叶斯法是典型的生成学习方法 2.朴素贝叶斯法的基本假设是条件独立性 3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测 用于文…...
【PTE-day07 文件上传2】
1、常见的绕过方式 (1)畸形后缀名绕过 .php、.pht、.php3、.php4、.php5、.php2、.phtml、.pHp、.html、.Htm......(2)双写过滤字符绕过 (3).htaccess文件绕过 <FilesMatch "jpg"> SetHandler application/x-httpd-php...
设计模式之十一:代理模式
代理可以控制和管理访问。 RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法就和运行在客户自己本地JVM对对象进行正常方法调用一样。 步骤一:制作远程…...
在spring boot中调用第三方接口时重试问题
文章目录 前言 spring-retry对第三方接口做重试,和处理操作 一、引入依赖 <!--重试请求的注解依赖--><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId></dependency>&l…...
记录一次多数据源配置失效的情况
说明:在一些复杂的业务情景,比如我们需要在一个订单审核通过后,在将数据库状态修改的同时,将订单与订单详细这两条数据写入到另一个数据库中。我们就可以通过在配置文件中,配置多数据源,然后通过在Mapper的…...
EasyExcel导出替换列中的变量
基于easyexcel2.0版本 easyexcel官网:https://easyexcel.opensource.alibaba.com/docs/2.x/quickstart/write 测试代码地址:https://gitee.com/wangtianwen1996/cento-practice/blob/master/src/test/java/com/xiaobai/easyexcel/DynamicHeadTest.java …...
机器人规划算法——将多边形障碍物离散到地图像素点上?
问题一:如何判断一个点是否在多边形区域内? 方法1:向量叉乘判别法 设多边形的顶点依次为A1,A2…An,要判断的点为P,那么分别计算向量PA1叉乘向量PA2,向量PA2叉乘向量PA3,…ÿ…...
windows11使用docker部署安装minio
时间 2023-11-08 windows11使用docker部署安装minio 目录 1.docker 下载镜像2.docker安装镜像3.访问控制台4.安装问题解决5.使用教程 1.docker 下载镜像 调整镜像源到国内,否则会很慢 docker pull minio/minio2.docker安装镜像 设置用户名和密码时需要注意&…...
【JavaEESpring】Spring Web MVC⼊⻔
Spring Web MVC 1. 什么是 Spring Web MVC1.1 什么是 MVC ?1.2 是什么 Spring MVC? 2. 学习 Spring MVC2.1 建立连接2.2 请求2.3 响应 3. 相关代码链接 1. 什么是 Spring Web MVC 官⽅对于 Spring MVC 的描述是这样的: 1.1 什么是 MVC ? MVC 是 Model View C…...
flutter逆向 ACTF native app
前言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道l…...
【Redis】set 集合
上一篇:list 列表 https://blog.csdn.net/m0_67930426/article/details/134364315?spm1001.2014.3001.5501 目录 Sadd Smembers Sismember Scard Srem 编辑Srandomember Spop Smove 集合类 Sdiff Sinter Sunion 官网 https://redis.io/commands/?…...
【算法与设计模式】
一、数据结构与算法 1、算法性能评估 时间复杂度、空间复杂度 2、数据结构 数组与列表 队列 堆栈 链表 二叉树 多叉树 递归算法 二、设计模式 1、单例 (1)GIL:线程互斥锁。保证同一时刻只有一个线程在进行。 (2)…...
Javaweb之javascript的小案例的详细解析
1.5.4 案例 1.5.4.1 需求说明 鲁迅说的好,光说不练假把式,光练不说傻把式。所以接下来我们需要通过案例来加强对于上述DOM知识的掌握。需求如下3个: 点亮灯泡 将所有的div标签的标签体内容后面加上:very good 使所有的复选框呈现被选中的…...
Vant 移动端UI 组件自动引入
Vue项目中安装Vant # Vue 3 项目,安装最新版 Vant npm i vant 组件按需引入配置 Vant按需引入- - -安装:unplugin-vue-components 插件 unplugin-vue-components 插件可以在Vue文件中自动引入组件(包括项目自身的组件和各种组件库中的组件&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
