当前位置: 首页 > news >正文

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)

这是一个非对称加密的库&#xff0c;可以进行 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&#xff0c;在Tecent重多游戏中被采用&#xff0c;本文通过案例去讲解xlua代码结构层次。 /** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tence…...

【数据结构】二叉树经典例题---<你真的掌握二叉树了吗?>(第一弹)

一、已知一颗二叉树如下图&#xff0c;试求&#xff1a; (1)该二叉树前序、中序和后序遍历的结果。 (2)该二叉树是否为满二叉树&#xff1f;是否为完全二叉树&#xff1f; (3)将它转换成对应的树或森林。 (4)这颗二叉树的深度为多少? (5)试对该二叉树进行前序线索化。 (6)试对…...

基于springboot实现桥牌计分管理系统项目【项目源码】

基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&#…...

机器学习——朴素贝叶斯

目录 一、贝叶斯方法 背景知识 贝叶斯公式 二、朴素贝叶斯原理 判别模型和生成模型 1&#xff0e;朴素贝叶斯法是典型的生成学习方法 2&#xff0e;朴素贝叶斯法的基本假设是条件独立性 3&#xff0e;朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测 用于文…...

【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提供了客户辅助对象和服务辅助对象&#xff0c;为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法就和运行在客户自己本地JVM对对象进行正常方法调用一样。 步骤一&#xff1a;制作远程…...

在spring boot中调用第三方接口时重试问题

文章目录 前言 spring-retry对第三方接口做重试&#xff0c;和处理操作 一、引入依赖 <!--重试请求的注解依赖--><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId></dependency>&l…...

记录一次多数据源配置失效的情况

说明&#xff1a;在一些复杂的业务情景&#xff0c;比如我们需要在一个订单审核通过后&#xff0c;在将数据库状态修改的同时&#xff0c;将订单与订单详细这两条数据写入到另一个数据库中。我们就可以通过在配置文件中&#xff0c;配置多数据源&#xff0c;然后通过在Mapper的…...

EasyExcel导出替换列中的变量

基于easyexcel2.0版本 easyexcel官网&#xff1a;https://easyexcel.opensource.alibaba.com/docs/2.x/quickstart/write 测试代码地址&#xff1a;https://gitee.com/wangtianwen1996/cento-practice/blob/master/src/test/java/com/xiaobai/easyexcel/DynamicHeadTest.java …...

机器人规划算法——将多边形障碍物离散到地图像素点上?

问题一&#xff1a;如何判断一个点是否在多边形区域内&#xff1f; 方法1&#xff1a;向量叉乘判别法 设多边形的顶点依次为A1&#xff0c;A2…An&#xff0c;要判断的点为P&#xff0c;那么分别计算向量PA1叉乘向量PA2&#xff0c;向量PA2叉乘向量PA3&#xff0c;…&#xff…...

windows11使用docker部署安装minio

时间 2023-11-08 windows11使用docker部署安装minio 目录 1.docker 下载镜像2.docker安装镜像3.访问控制台4.安装问题解决5.使用教程 1.docker 下载镜像 调整镜像源到国内&#xff0c;否则会很慢 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 的描述是这样的&#xff1a; 1.1 什么是 MVC ? MVC 是 Model View C…...

flutter逆向 ACTF native app

前言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道l…...

【Redis】set 集合

上一篇&#xff1a;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、单例 &#xff08;1&#xff09;GIL&#xff1a;线程互斥锁。保证同一时刻只有一个线程在进行。 &#xff08;2&#xff09…...

Javaweb之javascript的小案例的详细解析

1.5.4 案例 1.5.4.1 需求说明 鲁迅说的好&#xff0c;光说不练假把式,光练不说傻把式。所以接下来我们需要通过案例来加强对于上述DOM知识的掌握。需求如下3个&#xff1a; 点亮灯泡 将所有的div标签的标签体内容后面加上&#xff1a;very good 使所有的复选框呈现被选中的…...

Vant 移动端UI 组件自动引入

Vue项目中安装Vant # Vue 3 项目&#xff0c;安装最新版 Vant npm i vant 组件按需引入配置 Vant按需引入- - -安装&#xff1a;unplugin-vue-components 插件 unplugin-vue-components 插件可以在Vue文件中自动引入组件&#xff08;包括项目自身的组件和各种组件库中的组件&…...

JPEXS Free Flash Decompiler架构集成与系统对接实施指南

JPEXS Free Flash Decompiler架构集成与系统对接实施指南 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler JPEXS Free Flash Decompiler&#xff08;FFDec&#xff09;作为业界领先的Fla…...

Wonder3D:2-3分钟从单张图片生成高质量3D模型的完整指南

Wonder3D&#xff1a;2-3分钟从单张图片生成高质量3D模型的完整指南 【免费下载链接】Wonder3D Single Image to 3D using Cross-Domain Diffusion for 3D Generation 项目地址: https://gitcode.com/gh_mirrors/wo/Wonder3D 单图生成3D模型一直是计算机视觉领域的挑战性…...

Sui框架完全指南:构建自定义代币的10个步骤

Sui框架完全指南&#xff1a;构建自定义代币的10个步骤 【免费下载链接】sui-move-intro-course Introductory Course to the Sui Move language 项目地址: https://gitcode.com/gh_mirrors/su/sui-move-intro-course 在Sui区块链上构建自定义代币是进入Web3开发的重要一…...

Hermes Agent vs OpenClaw:我花了一周对比,说说真实感受

先说结论Hermes Agent 的核心卖点是"会自己变聪明"——完成任务后会自动提炼技能、积累记忆&#xff0c;用得越久越好用。OpenClaw 的核心卖点是"生态大"——50 平台接入、13000 社区技能&#xff0c;开箱即用。两个都是 MIT 开源。选哪个&#xff0c;取决…...

写段代码教会你什么是HOOK技术?HOOK技术能干什么?禾

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode&#xff0c;现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力&#xff0c;让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中&#xff0c;我们遇到了一个很现实的问…...

文墨共鸣:如何用AI理解文字“意思”而不仅仅是“文字”?

文墨共鸣&#xff1a;如何用AI理解文字“意思”而不仅仅是“文字”&#xff1f; 你有没有遇到过这样的情况&#xff1f;两段文字&#xff0c;用词完全不同&#xff0c;但说的却是同一个意思。或者反过来&#xff0c;字面看起来差不多&#xff0c;但想表达的核心观点天差地别。…...

如何突破八大网盘限速:终极直链解析下载方案

如何突破八大网盘限速&#xff1a;终极直链解析下载方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

通义千问3-4B模型语义搜索优化:ES插件集成部署实战

通义千问3-4B模型语义搜索优化&#xff1a;ES插件集成部署实战 1. 引言&#xff1a;为什么需要语义搜索优化 传统的搜索引擎主要依赖关键词匹配&#xff0c;当你搜索"苹果"时&#xff0c;它可能返回水果苹果、苹果公司、甚至人名苹果的各种结果。而语义搜索能理解你…...

Zotero-SciPDF:3分钟解锁科研超能力,告别文献下载烦恼

Zotero-SciPDF&#xff1a;3分钟解锁科研超能力&#xff0c;告别文献下载烦恼 【免费下载链接】zotero-scipdf Download PDF from Sci-Hub automatically For Zotero7 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-scipdf 还在为找不到论文PDF而烦恼吗&#xff…...

OpenClaw技能共享经济:发布Phi-3-vision插件到ClawHub全流程

OpenClaw技能共享经济&#xff1a;发布Phi-3-vision插件到ClawHub全流程 1. 为什么选择OpenClaw生态 去年夏天&#xff0c;当我第一次尝试用OpenClaw自动化处理图片分类任务时&#xff0c;就意识到这个框架的潜力远不止于个人使用。最让我惊喜的是它的技能共享机制——任何开…...