vue使用jsencrypt实现rsa前端加密

实现 RSA 加密

介绍 vue 完成 rsa 加密传输,jsencrypt 实现参数的前端加密

1 安装 jsencrypt

npm install jsencrypt

2 编写 jsencrypt.js

  1. utils 文件夹中新建 jsencrypt.js 文件,内容如下:
  2. 注意点:一般公钥都是后端生成好的,之间给到前端,需要注意的需要让后端把生成的公钥放入.txt文件中。把.txt文件给前端,否则可能会出现无法使用的可能
import JSEncrypt from "jsencrypt/bin/jsencrypt.min";// 密钥对生成 http://web.chacuo.net/netrsakeypair// 公钥进行加密(后端给前端的公钥)
// 测试数据
const publicKey ="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZFKd5QKsXGcYa0SHVsy\n" +"Mmtw6ODLpi0KAX3VyYKnlFcUa3T7NSiWEvozm+Pe2KGFP/QOtxo4Psg5RzhGC9Rk\n" +"R15ZiaySq7uOEIPmLXFG46tItCPt3r+JS0ycCTX7QGkOX5jN/tLkuEV482anH/qi\n" +"bRbh9Vajh9axxxxxxxxxx2K+M7PNN0z4P8944zVN4Z0LoXnPZ9x511VMRzWyAgJU\n" +"700j6l1Uwx+Cw0sBY379XW8jkBTqq/wQ1RBOCbLT0jgKql+cPVJ6Exqu6sMIKtKH\n" +"sueLOAQh31kosj8QXvhf+21+YOkoKLXxMRyw4WD7HOBXHQZp0q6+Em4ZmpvltPhm\n" +"vwIDAQAB";// 私钥进行解密
const privateKey = "";// 加密
export function encrypt(txt) {const encryptor = new JSEncrypt();encryptor.setPublicKey(publicKey); // 设置公钥return encryptor.encrypt(txt); // 对数据进行加密
}// 解密
export function decrypt(txt) {const encryptor = new JSEncrypt();encryptor.setPrivateKey(privateKey); // 设置私钥return encryptor.decrypt(txt); // 对数据进行解密
}

3. 页面使用

import { encrypt, decrypt } from "@/utils/jsencrypt";// 请求参数
let params = {username: "admin",password: encrypt(123456),//对123456进行rsa加密
};

在这里插入图片描述

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

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

相关文章

爬虫逆向实战(二十八)--某税网第一步登录

一、数据接口分析 主页地址:某税网 1、抓包 通过抓包可以发现登录接口是factorAccountLogin 2、判断是否有加密参数 请求参数是否加密? 通过查看载荷模块可以发现有一个datagram 和 一个signature加密参数 请求头是否加密? 通过查看“标…

Apinto 网关 V0.14 版本发布,6 大插件更新!

大家好! 距离上次更新已经过去一段时间了,这段日子里我们一直在酝酿新的功能,本次的迭代将给大家带来 6 大插件的更新~一起来看看有哪些变化吧! 新特性 1. 新增 额外参数v2 插件,支持对转发参数进行加密、拼接等操作…

串行协议——USB驱动[基础]

多年前的学习记录,整理整理。 一、USB协议基础 二、Linux内核USB驱动源码分析 USB中不同类型设备使用的 设备描述符(设备类\设备子类\设备协议) 配置不同,典型的以下几种:1)HID设备: Human Input Device人工输入设备, 如鼠标\键盘\游戏手柄等.2)CDC设备: Communi…

02-系统篇-内存分布

一.进程中的内存分布 进程是应用程序运行的单位,进程在内存中运行时,各个部分分布的情况如图。 1.栈内存(statck) 特点:后进先出 系统一般会对栈的大小进行限制,可以用命令进行查看,如下,700是进程号,栈被…

CentOS7上源码安装Redis6

CentOS7上源码安装Redis6 安装依赖开始安装下载安装包解压安装包编译源代码修改配置文件 启动并连接启动redis服务器本地连接远程连接 下篇预告 安装依赖 首先我们是源码包安装我们需要安装C语言编译器,顺便下载wget: yum install -y gcc wget开始安装…

Git 基本原理和常用操作

Git Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。由 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源的版本控制软件。 Git 常用操作 git 提交流程:工作区 -> git add 到暂存区 -> gi…

静态路由——实现两个不相连的网段通信实验

路漫漫其修远兮,吾将上下而求索 今天做一个简单的实现两个不相连的网段通信实验,本实验使用静态路由配置,主要 加强初学者对静态路由的理解。 实际中不可能只使用静态路由,还要使用诸多的其他网络协议,达到安全可靠的…

Gin学习记录3——模版与渲染

模版与渲染 一. 返回二. 模版2.1 基础模版2.2 同名模版2.3 模版继承2.4 模版语法 一. 返回 如果只是想返回数据,可以使用以下函数: func (c *Context) JSON(code int, obj any) func (c *Context) JSONP(code int, obj any) func (c *Context) String(…

SpringBoot集成WebSocket

SpringBoot集成WebSocket 项目结构图 项目架构图 前端项目 socket.js 注意前端这里的端口是9000, 路劲是ws开头 function createScoket(token){var socket;if(typeof(WebSocket) "undefined") {console.log("您的浏览器不支持WebSocket");}else{var ho…

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA(NVIDIA的并行计算平台)和cuDNN(深度神经网络库),以及如何验证安装是否成功。通过按照这些步骤操作,您将能够…

知识储备--基础算法篇-矩阵

2.矩阵 2.1第54题螺旋矩阵 第一题上来就跪了,看了官方答案感觉不是很好理解,找了一个比较容易理解的。 class Solution(object):def spiralOrder(self, matrix):""":type matrix: List[List[int]]:rtype: List[int]"""…