vue实现CBC加密/解密

news2024/11/19 13:19:11

我们现在终端引入输入

npm install crypto-js

引入依赖 突然发现 crypto-js 确实是一个加密的神器
然后 我们直接在App.vue组件这样写吧

<template>
  <div>
    <input v-model="plainText" placeholder="输入明文" />
    <button @click="encrypt">加密</button>
    <button @click="decrypt">解密</button>
    <p>密文: {{ cipherText }}</p>
    <p>解密后的明文: {{ decryptedText }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      plainText: '',
      cipherText: '',
      decryptedText: '',
      key: '0123456789abcdef', // 密钥
      iv: 'abcdef0123456789' // 初始向量
    };
  },
  methods: {
    encrypt() {
      // CBC加密
      const cipher = this.$CryptoJS.AES.encrypt(this.plainText, this.$CryptoJS.enc.Hex.parse(this.key), {
        iv: this.$CryptoJS.enc.Hex.parse(this.iv)
      }).ciphertext;
      this.cipherText = this.$CryptoJS.enc.Hex.stringify(cipher);
    },
    decrypt() {
      // CBC解密
      const cipher = this.$CryptoJS.enc.Hex.parse(this.cipherText);
      const decrypted = this.$CryptoJS.AES.decrypt({ ciphertext: cipher }, this.$CryptoJS.enc.Hex.parse(this.key), {
        iv: this.$CryptoJS.enc.Hex.parse(this.iv)
      });
      this.decryptedText = decrypted.toString(this.$CryptoJS.enc.Utf8);
    }
  },
  mounted() {
    // 在Vue实例中引入CryptoJS库
    this.$CryptoJS = require('crypto-js');
  }
};
</script>

这里 我并没有用npm 直接导入 而是用了require将crypto-js对象直接赋值给了原型链上的 $CryptoJS
这样方便整体使用
data中 plainText 是用户输入的 对应我们要加密的内容
然后 加密完之后 会赋值给 cipherText
最后解密通过 cipherText 解密 然后内容赋值给decryptedText
而 key 秘钥 和 iv初始化向量 大家则是要和对接自己的后端 或者其他人沟通清楚 因为这是个加密规则 如果那你数据的人规则跟你不一样 提示解密不出来的
加密解密的方法都是 crypto-js 官方提供的
大家自己看一下直接复制改一改拿取用就好了
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XC4150B 3W单声道D类音频功率放大器 可用于蓝牙音箱、行车记录仪

XC4150B是一款超低EMI、无需滤波器3W单声道D类音频功率放大器。XC4150B采用先进的技术&#xff0c;在全带宽范围内极大地降低了 EMI干扰&#xff0c;最大限度地减少对其他部件的影响. XC4150B内置过流保护、过热保护及欠压保护功能&#xff0c;有效地保护芯片在异常工作…

你准备好使用 MySQL 10 了吗?

作者 | Norvald Ryeng 来源 |https://dev.mysql.com/blog-archive/are-you-ready-for-mysql-10/ 大家好&#xff0c;我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 你准备好使用 MySQL 10 了吗&#xff1f;欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号&#…

【VUE复习·2】@click 之事件处理与函数(可传参);@click 阻止事件冒泡应用场景;@click 多修饰符应用场景(高级)

总览 1.“事件处理”是什么 2.click 函数参数传递应用 3.click 阻止事件冒泡应用场景 4.click 多修饰符应用场景&#xff08;高级&#xff09; 一、“事件处理”是什么 1.概念 我们在和页面进行交互时&#xff0c;进行点击或滑动或其他动作时&#xff0c;我们操作的是 DOM …

rpc网络

零拷贝 直接IO技术 磁盘–>内核缓冲区(内核空间)–>应用程序内存(用户空间)–>Socket 缓冲区(内核缓冲区)–>网络。 内存映射文件技术 磁盘–>内核缓冲区(内核缓冲区)–>Socket缓冲区(内核缓冲区)–>网络 零拷贝技术 磁盘–>内核缓冲区–>网络…

0基础学习VR全景平台篇 第103篇:使用英文、法文、德文等其他语言

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 蛙色VR平台目前已支持中英文语言进行切换&#xff0c;本期教程为大家带来&#xff0c;如何实现日文、法文、德文、俄文乃至其他小语种离线包里语言切换教程&#xff01; 语言切换样例展示 一、使用本功…

Appium+Python实现iOS自动化测试~环境搭建

Appium是一款开源的跨平台测试自动化工具&#xff0c;适用于本地&#xff0c;混合和移动网络和桌面应用程序。支持模拟器&#xff08;iOS、Android&#xff09;和真实设备&#xff08;iOS&#xff0c;Android&#xff0c;Windows&#xff0c;Mac&#xff09;。 准备工具 Xcod…

DRM遇到的实际问题及领悟(2)

接前一篇文章&#xff1a;DRM遇到的实际问题及领悟&#xff08;1&#xff09; 三、进一步定位 上回说到使用网上例程有同样会遇到mmap错误的问题&#xff0c;对于这个错误&#xff0c;perror只给出了“Invalid argument”的错误原因&#xff0c;具体错在哪里&#xff0c;并不知…

多元回归分析

建模复习 目录 前言 一、回归的思想 1,介绍 2&#xff0c;回归分析的分类 3&#xff0c;数据类型 二、一元线性回归 1&#xff0c;一元线性函数拟合 2&#xff0c;一元线性回归模型 3&#xff0c;回归系数 1&#xff0c;回归系数的解释 2&#xff0c;内生性 3&…

大模型技术实践(四)|参数高效微调技术解析及AdaLoRA的应用

在上一期的大模型技术实践中&#xff0c;我们为大家介绍了基于“LangChainLLM”框架快速搭建知识增强后的问答机器人&#xff0c;并探讨了提升模型内容理解和执行能力的潜在优化方向。本期内容UCloud将为您介绍参数高效微调技术&#xff08;PEFT&#xff09;&#xff0c;即对已…

软件研发团队建设---利用“鲇鱼效应”推进研发团队人文环境的建设手记(2)

软件研发团队建设—利用“鲇鱼效应”推进研发团队人文环境的建设手记&#xff08;2&#xff09; 背景 软件研发团队建设—如何协助业主建设软件研发团队并提高其力量的手记&#xff08;1&#xff09; 与业主某研发人员的沟通 &#xff08;长图&#xff0c;耐心点&#xff0…

CDS(一)

Core Data Services 核心数据服务 DDL 定义Query Language 查询DCL 控制&#xff08;权限相关&#xff09;model&#xff0c;从语义层获取数据open SQL 访问CDS viewCDS权限定义,集成旧的权限概念扩展native SQL扩展SQL建模和声明 ABAP ViewCDS View支持所有数据库是是支持查询…

全网最细,Jenkins配合GitLab分支自动合并/自动创建(超细整理)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 GitFlow工作流简介…

python(自4) xpath下载 lxml安装 lxml语法 使用方式

&#xff08;一&#xff09;安装 搜索xpath 讲解 XPath 教程 (w3school.com.cn) 一&#xff0c;下载地址 &#xff1a; https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 二 &#xff0c;拖拽 &#xff08;二&#xff09;lxml安装 cmd 打开终端 cd pythond…

数据库及分类详细介绍

目录 一、数据库详细介绍1、什么是数据库2、数据库的种类3、常见的数据库4、关系型数据库4.1、关系型数据库介绍4.2、关系型数据库的优缺点4.3、关系型数据库小结 5、非关系型数据库5.1、非关系数据库诞生的背景5.2、非关系型数据库的介绍5.3、非关系型数据库的优缺点5.4、非关…

LInux本地连接超时ip未显示

关闭防护墙 systemctl stop firewalld 查看防火墙状态 systemctl status firewalld 开启80端口 /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 查看Ip ifconfig

清能股份2MW热电联供系统成功下线

2023年9月26日&#xff0c;由清能股份旗下豫氢动力承接的2MW燃料电池热电联供项目已正式下线&#xff0c;发往焦作煤业&#xff08;集团&#xff09;开元化工有限责任公司&#xff08;简称“开元化工”&#xff09;安装运营。 开元化工是河南知名氯碱国企&#xff0c;该项目是国…

左对齐和右对齐

%d默认为左对齐&#xff0c;%5d为右对齐&#xff08;以空格补齐&#xff09;&#xff0c;%05d为右对齐&#xff08;以0补齐&#xff09;&#xff0c;%-5d左补齐&#xff08;以空格补齐&#xff09;&#xff0c;整数和小数同理。%.xf,x为小数点后保留的位数。 #include<stdi…

WebGL实现透明物体(α混合)

目录 α混合 如何实现α混合 1. 开启混合功能&#xff1a; 2. 指定混合函数 混合函数 gl.blendFunc&#xff08;&#xff09;函数规范 可以指定给src_factor和dst_factor的常量 混合后颜色的计算公式 加法混合 半透明的三角形&#xff08;LookAtBlendedTriangl…

使用Python和Pandas处理网页表格数据

在我们的日常工作和生活中&#xff0c;经常会遇到需要处理大量数据的情况&#xff0c;而网页表格数据则是其中常见的一种形式。如果我们能够灵活地使用Python和Pandas这两个强大的工具&#xff0c;就能够快速、高效地对这些数据进行处理和分析。 首先&#xff0c;我们需要了解…

游戏服务商Latis Global参展2023 ChinaJoy B2B

第20届ChinaJoy于2023年7月在上海举行了为期四天的博览会,参展观众达到了33.8万人次。ChinaJoy是全球最具知名度与影响力的年度盛会之一,涵盖了包括游戏、动漫、互联网影视、电子竞技、潮流玩具、智能娱乐在内的多个数字娱乐领域。ChinaJoy不仅仅代表了数字娱乐领域的最新风向,…