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

前端插件库-VUE3 使用 JSEncrypt 插件

JSEncrypt 是一个用于在客户端进行加密的 JavaScript 库。它基于 RSA 加密算法,可以用于在浏览器中对数据进行加密和解密操作。

以下是使用 JSEncrypt 进行加密和解密的基本示例:

第一步:安装 JSEncrypt  

首先,你需要引入 JSEncrypt 库。你可以在项目中添加 JSEncrypt 的脚本文件,或者使用 CDN:

<!-- 使用 CDN 引入 JSEncrypt 脚本 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0/jsencrypt.min.js"></script>

or(或者)

npm install jsencrypt

第二步:枚举公/私钥

@src/config/map/index.js

// 设置公钥、私钥(通常从服务器获取,这里仅为示例)
const publicKey = 'MIGfMA0GCSqGSIb3DQEBCBiQKBgQCOvCfR4vqp1Nknj4PA3jZm9+Hq8tiH5tubX3UjKx5b71r+jRaSgLGd0ZA3ZK380EAXB99su0p62jfiAX7anOXRrBGqeXEhVCpNCRsUw/JwvjyEJ284FVXicNJNVVORnj+bOJx6Ue3iXFlkbQWocR8LXvjXFzftQIDAQAB';
const privateKey = 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAI68J9Hi+qlsbJxnLClhNfVzU2SePg8DeNmb34ery2Ifm25tfdSMrHlvvWv6NFpKAsZ3RkDdkrfzQQBcH32y7SnraN+IBftqc5dGsEap5cSFUKk0JGxTD8nC+PIQnbzgVVeJw0k1VU5GeP5s4+NcXN+1AgMBAAECgYBpz3PZdOELDbRqMVWci1Lb1RBRtsLfqGEGpCVKU+Lpxx+PlVWWP88gMUOFob+REyX+zcx8Chwy9o6mBXDvcaVbo8oLDnumqxTMQ7uRGIl92Nt5OvtVp/hImxBQgEdEw0PQ6jKUjTaoP3t9Z0iJVZGaRsGdQJBAP5Iz9iJ+sxCRFFknr075wk84N/3G7lD5NmX3y+ZN8XhyCfoCXhRgB9xELdqAjFWDx8CQQCPsq5CXe6WhEHAAr6MvG1W2YtIAfFFqaVbvbgy8SuTYAJYWSz+NTwDSQcQFcKGoUXsrtNZqaqM/uqv0HJB1HqrAkEA9yIwztUaKWtID0Assq+V+BqWmIt2vQnSeACAvo2Pd0zxiPoSubYgntGZmhshN3K+IvrC6WrcSLKMepXO18A6JQJAAYoKb8+NxLL5+VKOM/e4vBtscIME0Jg2mzr3BCStMNDwdX3PC5IKaIaZusRg5wxHMXfV77nvh78bSHLVJnteLQJBAN55a/qiELgCMN6ZOne6FageR5B3gMaVDNJsCOcBwJpFRcW8cxssv4TNUfqfn1VwBeqtO9zVDVLNZ+OxFJme3u4=';export {publicKey,privateKey
};

  第三步:封装加密解密方法

   @src/config/utils/index.js

import { JSEncrypt } from 'jsencrypt';
import { publicKey, privateKey } from '@map/index.js';// 加密
function encryptText(text) {const instance = new JSEncrypt();instance.setPublicKey(publicKey);return instance.encrypt(text);
}// 解密
function decryptText(text) {const instance = new JSEncrypt();instance.setPrivateKey(privateKey);return instance.decrypt(text);
}export {encryptText,decryptText,
}

  第四步:组件中使用 

<script setup>import { ref } from 'vue';import { encryptText, decryptText } from '@utils';const loginForm = ref({});const submit = () => {let { password, username } = loginForm.value || {}let resLoginInforesLoginInfo['password'] = encryptText(password)resLoginInfo['username'] = encryptText(username)        /*{ password:'O+dmiGTQLhvvIGPHZewL431msOIQvmt7M0L4jC9MyOEKRPvX5BNR8TWqPSb0dJoc=',             username:'WURTJuEE9S+v4gbEcQWH9VC14k7M0L4jC9MyOEKRPvX5BNR8TWnS5H7ycV8fMYng='}*/}
</script>

http://www.lryc.cn/news/278133.html

相关文章:

  • Neo4j备份
  • 【LangChain学习之旅】—(5) 提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案
  • Python从入门到精通秘籍一
  • 【IC设计】移位寄存器
  • 【Flutter 开发实战】Dart 基础篇:最基本的语法内容
  • 中国光伏展
  • Nacos的统一配置管理
  • SpringBoot项目docker镜像生成
  • JDBC初体验(二)——增、删、改、查
  • Eva.js是什么(互动小游戏开发)
  • 监听 beforeunload 事件,阻止页面刷新导致的信息丢失
  • Java 常见缓存详解以及解决方案
  • Golang 交叉编译之一文详解
  • 最新ThinkPHP版本实现证书查询系统,实现批量数据导入,自动生成电子证书
  • windows安装运行Apache James(基于spring的版本)
  • Elasticsearch 基本概念:快速入门指南【记录】
  • 【JVM 基础】类字节码详解
  • 【算法】基础算法001之双指针
  • [力扣 Hot100]Day2 字母异位词分组
  • 记一次 easyswoole 热重载失效复盘 grpc扩展惹的祸
  • 存储过程从表中获取数据库名称
  • .NET 反射的介绍和简单应用
  • 在drawio中使用BPMN2.0绘制详细的业务流程图和编排模型
  • GO——defer函数
  • 【UE Niagara学习笔记】06 - 制作火焰喷射过程中飞舞的火星
  • 机器学习笔记一之入门概念
  • 用于脚本支持的 CSS 媒体查询
  • 【HBase】——整合Phoenix
  • 【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities
  • Python从入门到网络爬虫(控制语句详解)