vue加密传输,后端获取进行解密。

文章目录

    • 概要
    • Vue前端加密
    • 后端进行解密
    • 小结

概要

vue界面加密传输,后端获取进行解密,适用于登录时密码加密传输。

Vue前端加密

1.安装jsencrypt包:

npm install jsencrypt

安装完成后package.json会有jsencrypt依赖
在这里插入图片描述
2.引入jsencrypt.js到文件夹中:

import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
// 密钥对生成 http://web.chacuo.net/netrsakeypair
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMdWxcAuyJTg1bT9AMMaQDZmVbXoQbYuVHz0r+Kl4O3j1/Wa2IpCWDbBarAkZlUHVWsNA1+eBtdJ6mhj49jdwu8CAwEAAQ=='const privateKey = 'MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAx1bFwC7IlODVtP0AwxpANmZVtehBti5UfPSv4qXg7ePX9ZrYikJYNsFqsCRmVQdVaw0DX54G10nqaGPj2N3C7wIDAQABAkEArwiId6ocwm1x+Yw2wRopzBqrpCEeoiOoWFhaoL9a9EaPxCPus/Mc4/bJh+pT0XlB7fnw1DjkDgpA2QNG0F5AUQIhAPmtAbNP/MkdcFvibn5DgegzVqdMOo22sFw3dVb7/6jAiEAzGNcyGmI3N+p/OYyRe9i+q2XnjnG8if0mMOLpRNAa0UCIn0aO3yUXzfTJyNQaSNIn/UlC8O7yVXfI9b5axdFwuLAiAiqS8Q5aTKIDwJoVghOAmHDW1K7e1pH5GBXpgN9IfWKQIhAK6BZCptpUWBvF9ZfZ3aHCkzQL8gyMDlKOHOvkvhhzO4'// 加密
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.Vue页面引入jsencrypt.js调用加密方法:
在这里插入图片描述

后端进行解密

1.pom.xml引入hutool工具包依赖:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version>
</dependency>

2.引入解密文件:

import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;public class PwdUtil {private static final String privateKeyBase64="MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAx1bFwC7IlODVtP0AwxpANmZVtehBti5UfPSv4qXg7ePX9ZrYikJYNsFqsCRmVQdVaw0DX54G10nqaGPj2N3C7wIDAQABAkEArwiId6ocwm1x+Yw2wRopzBqrpCEeoiOoWFhaoL9a9EaPxCPus/Mc4/bJh+pT0XlB7fnw1DjkDgpA2QNG0F5AUQIhAPmtAbNP/MkdcFvibn5DgegzVqtdMOo22sFw3dVb7/6jAiEAzGNcyGmI3N+p/OYyRe9i+q2XnjnG8if0mMOLpRNAa0UCIAn0aO3yUXzfTJyNQaSNIn/UlC8O7yVXfI9b5axdFwuLAiAiqS8Q5aTKIDwJoVghOAmHDW1K7e1pH5GBXpgN9IfWKQIhAK6BZCptpUWBvF9ZfZ3aHCkzQL8gyMDlKOHOvkvhhzO4";public static String rsa_decrypt(String ciphertext) {RSA rsa1 = new RSA(privateKeyBase64, null); String str = rsa1.decryptStr(ciphertext, KeyType.PrivateKey);return str;}}

3.调用解密文件的解密方法即可:

@PostMapping("/login")public AjaxResult login(@RequestBody LoginBody loginBody){String user = userService.selectUserRoleGroup(loginBody.getUsername());if(user.contains("管理员")) {return AjaxResult.error("管理员请从管理员端口登录!");}AjaxResult ajax = AjaxResult.success();//解密String  password = PwdUtil.rsa_decrypt(loginBody.getPassword());// 生成令牌String token = loginService.login(loginBody.getUsername(), password, loginBody.getCode(),loginBody.getUuid());ajax.put(Constants.TOKEN, token);return ajax;}

小结

提示:公钥加密,私钥解密,密钥对生成 http://web.chacuo.net/netrsakeypair

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

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

相关文章

Trieve实践:好用功的开源RAG

目录 RAG概述 RAG架构 Trieve Trieve介绍 Trieve使用 初始化 自行搭建RAG Trieve是什么&#xff0c;RAG是什么&#xff0c;本文来带你了解。其实在很多产品应用里面都会有RAG,比如ai客服&#xff0c;针对性的智能问答&#xff0c;都是基于RAG实现的 RAG概述 RAG 是一种…

【竞技宝】英超:曼城击败热刺,赢西汉姆联就夺冠

曼城在英超补赛中跟热刺相遇,这场比赛对于双方来说都必须赢。曼城要是拿不下热刺,联赛夺冠形势就不容乐观。热刺则是需要击败曼城,保留拿到下赛季欧冠的一线希望。所以,热刺和曼城开场就全力以赴。上半场热刺和曼城门将都做出精彩扑救,比分维持在0比0。下半场曼城金靴哈兰德发威…

ubuntu升级python

添加Python官方PPA源 sudo add-apt-repository ppa:deadsnakes/ppa 执行会显示各个版本ubuntu可以安装哪些python版本 更新软件包索引 sudo apt update 安装需要版本Python sudo apt install python3.11 检查Python版本: which python11 /usr/bin/python3.11 设置为系统默认Pyt…

前端无样式id或者class等来定位标签

目录&#xff1a; 1、使用背景2、代码处理 1、使用背景 客户使用我们产品组件&#xff0c;发现替换文件&#xff0c;每次替换都会新增如下的样式&#xff0c;造就样式错乱&#xff0c;是组件的文件&#xff0c;目前临时处理的话就是替换文件时删除新增的样式&#xff0c;但是发…

SAP揭秘者- SAP工单ATP检查专题之工单ATP检查的需求背景及相关操作

文章摘要&#xff1a; 从本章开始&#xff0c;我将给大家详细地介绍SAP生产订单/工单 ATP检查的相关的配置和操作&#xff0c;以及在项目上具体是怎么使用的&#xff0c;包含怎么应对实际项目中的一些疑难点需求。 ATP检查会应用到MM,SD,PP三个模块中&#xff0c;这里我们主要…

Spring初学入门(跟学笔记)

一、Spring概述 Spring是一款主流的Java EE轻量级开源框架。 Spring的核心模块&#xff1a;IoC&#xff08;控制反转&#xff0c;指把创建对象过程交给Spring管理 &#xff09;、AOP&#xff08;面向切面编程&#xff0c;在不修改源代码的基础上增强代码功能&#xff09; 二、…

ps找不到d3dcompiler_47.dll怎么办,无法启动,7个解决方法能搞定

当您在尝试运行某个游戏时&#xff0c;如果系统提示“d3dcompiler_47.dll丢失”或“无法找到d3dcompiler_47.dll”&#xff0c;这通常意味着DirectX组件不完整或损坏。下面是修复此问题的详细步骤&#xff1a; 一、d3dcompiler_47.dll的属性概述 文件名称&#xff1a;d3dcompi…

echarts去掉网格线

柱子后面白色的线太丑了&#xff01; 去掉他 x轴平行的线&#xff0c;就写在yAxis下面 yAxis: {type: value,splitLine: {lineStyle: {type: dashed, // 虚线样式color: rgba(255, 255, 255, 0.15) // 虚线颜色}},//去除网格线}, 这个颜色一定要加‘’&#xff0c;不然不生效…

python 批量webp格式转换成jpg

首先&#xff0c;你需要安装Pillow库。如果还未安装&#xff0c;可以通过pip安装&#xff1a; pip install Pillow 创建一个Python脚本来读取webp文件&#xff0c;并将其转换为jpg格式。 只需修改source_folder和dest_folder变量为你的实际文件夹路径即可使用这个脚本。 fro…

3SRB2516-ASEMI适配大功率充电桩3SRB2516

编辑&#xff1a;ll 3SRB2516-ASEMI适配大功率充电桩3SRB2516 型号&#xff1a;3SRB2516 品牌&#xff1a;ASEMI 封装&#xff1a;SGBJ-5 正向电流&#xff08;Id&#xff09;&#xff1a;25A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1600V 正向浪涌电流&…

EFDC建模方法及在地表水环境评价、水源地划分、排污口论证

原文链接&#xff1a;EFDC建模方法及在地表水环境评价、水源地划分、排污口论证https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604351&idx3&snc39009090054285af83c60bad162f321&chksmfa821998cdf5908ed8ad874ee9fa121f21ec03dd3ba62f9082027335ca5…

Linux修改终端命令颜色

1.在家目录中修改.bashrc文件 cd ~ vim .bashrc2.找到PS1相关段落&#xff0c;把其他的注释掉&#xff0c;填上该行代码&#xff0c;修改为自己设置的颜色 (具体颜色查看参考文章) 提供两种颜色&#xff0c;其他的自学调色盘吧(下文有)~ (祝你愉快) ①浅蓝色 深蓝 PS1\[\03…