vue 使用AES 加密

这篇具有很好参考价值的文章主要介绍了vue 使用AES 加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AES 加密的模式有两种:EBC,CBC

(1)EBC

是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。

(2)CBC

是一种循环模式,前一个分组的密文和当前分组的明文异或或操作后再加密,这样做的目的是增强破解难度。(不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准)
1.安装crypto

npm install crypto-js --save-dev
或者
cnpm install crypto-js --save-dev

2.vue中使用 在 src中utils工具文件夹中创建crypto.js

下面展示一些crypto.js 内联代码片

/**
 * 工具类
 * AES加密
 * 特别注意:(1)AES加密中需要前后端共同协商一个密文(密钥),用来加密/解密的(2)偏移量。
 * abcdefG123456789 代表此次密文
 */
 import CryptoJS from 'crypto-js'

//ECB模式
 export default {
  // 加密
   encrypt (word, keyStr) { // word, keyStr第一个参数是加密的字段名字  第二个是key值(16位)
     keyStr = keyStr || 'abcdefG123456789' // 密文(密钥)
     var key = CryptoJS.enc.Utf8.parse(keyStr)
     var srcs = CryptoJS.enc.Utf8.parse(word)
     var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7})
     return encrypted.toString()
   },
   // 解密
   decrypt (word, keyStr) {
     keyStr = keyStr || 'abcdefG123456789'
     var key = CryptoJS.enc.Utf8.parse(keyStr)// Latin1 w8m31+Yy/Nw6thPsMpO5fg==
     var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7})
     return CryptoJS.enc.Utf8.stringify(decrypt).toString()
   }
 
 }

//CBC模式
export default {
  // 特别注意:此次是将密文写死到函数内部,也可以当成函数的参数进行动态绑定密文,列如:
  encrypt(word) {
     let keyStr = "abcdefG123456789"; // 密钥
    
     let ivStr = "abcdefG123456789"; // 偏移量
    
     let key = CryptoJS.enc.Utf8.parse(keyStr);
    
     let iv = CryptoJS.enc.Utf8.parse(ivStr);
    
     let srcs = CryptoJS.enc.Utf8.parse(word);
    
     let encrypted = CryptoJS.AES.encrypt(srcs, key, {
    
        iv:iv,
        
        mode: CryptoJS.mode.CBC,
        
        padding: CryptoJS.pad.Pkcs7
    
     });
    
     return encrypted.toString();
    
   },
  // 解密
   decrypt(word) {

   let keyStr = "abcdefG123456789";
  
   let ivStr = "abcdefG123456789";

   let base64 = CryptoJS.enc.Utf8.parse(word)

   var key = CryptoJS.enc.Utf8.parse(keyStr);

   let iv = CryptoJS.enc.Utf8.parse(ivStr);

   let src = CryptoJS.enc.Utf8.stringify(base64)

   var decrypt = CryptoJS.AES.decrypt(src, key, {

        iv,

        mode: CryptoJS.mode.CBC,

        padding: CryptoJS.pad.Pkcs7

   });

   return decrypt.toString(CryptoJS.enc.Utf8);

   }
}
3. 在需要用到加密的文件中引用 import Crypto '@/utils/crypto.js ’

let password = Crypto.encrypt(values.password) // 调用js方法将密码进行AES加密(CBC模式)
// passwordA 用来登陆即可(前后端必须都用这样加密的格式进行对比,后端将相同的密文进行比对后,发现一致即可登陆)文章来源地址https://www.toymoban.com/news/detail-572798.html

到了这里,关于vue 使用AES 加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端使用 crypto-js 库 aes加解密

    CryptoJS是一个JavaScript加密算法库,用于在客户端浏览器中执行加密和解密操作。它提供了一系列常见的加密算法,如AES、DES、Triple DES、Rabbit、RC4、MD5、SHA-1等等。 AES 工作原理 AES(高级加密标准)是一种对称加密算法,即加密和解密使用相同的密钥。它可以加密长度为128、

    2024年02月04日
    浏览(32)
  • 前端AES加密解密

    前端经常会遇到这种接口和参数需要加密的情况,目前用的最多的就是aes加密了。以下就是操作步骤。以下方式适用各个前端框架,请自行根据框架修改对应语法 1.安装 CryptoJS 这个库就是用来加密的核心,直接打开项目终端,输入 npm install crypto-js --save 2. 新建 crypto.js 在 @/

    2024年02月13日
    浏览(44)
  • 信息安全4——AES加密算法

    ①算法简介 AES( Advanced Encryption Standard) 算法即高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。在微信小程序的数据传输过程中用到的加密算法。AES算法是用来替代原先的DES,目前已经被全世界广泛使用,同时AES已经成为对称密钥加密

    2024年01月22日
    浏览(30)
  • 安全:AES算法及其加密模式

    AES(高级加密标准)是一种对称密钥加密算法,被广泛用于保护数据的机密性。 AES算法: 结构: AES算法使用替代(SubBytes)、置换(ShiftRows)、混淆(MixColumns)和轮密钥加(AddRoundKey)等四种基本操作来处理数据块。 密钥长度: AES支持128位、192位和256位三种密钥长度,分别

    2024年01月23日
    浏览(38)
  • 前端AES加密,后端解密,有效防止数据外泄

    在工作中经常遇到密码明文传输这个问题,为了让密码安全些会让加密,现在有个比较方便的AES加密(前端密钥可能存在泄露风险,应该放到配置项中): 一、前端加密 1、首先引入前端需要用到的js:crypto-js,下载地址: CryptoJS-v4.1.1 https://www.aliyundrive.com/s/bXP6M8ZxVAD 点击链接

    2024年02月16日
    浏览(34)
  • PHP AES加密:保护数据安全的高级加密技术

    ASE(Advanced Encryption Standard)是一种对称加密算法,也被称为Rijndael加密算法。它是由比利时密码学家Joan Daemen和Vincent Rijmen设计的,于2001年被美国国家标准与技术研究院(NIST)选定为高级加密标准。 ASE算法使用相同的密钥进行加密和解密操作,因此被归类为对称加密算法。它

    2024年01月17日
    浏览(39)
  • 前后端通信安全RSA+AES混合加密

    前后端安全通信一直是头疼的问题,如何保证前后端安全通信? 读完这篇文章教你学会前后端安全通信。 客户端向服务端获取资源(如:html/css/js/jpg/json/api接口数据)的过程需要通信,常见的通信有TCP/UDP等。 通信安全是指用户在使用登录、注册、用户列表等功能时请求被拦

    2023年04月08日
    浏览(26)
  • C# 实现对称加密算法(AES)与非对称加密算法(RSA),包含前端加密对应算法实现

    一种既简单速度又快的加密方式,加密与解密使用的都是同一个密钥,别名又叫做:单密钥加密;对称加密有很多公开算法,并且因为它效率很高,所以适用于加密大量数据的场合;但其密钥的传输过程是不安全的,并且容易被破解,密钥管理起来也相对麻烦。 需要两个密钥

    2024年02月09日
    浏览(48)
  • 前端如何加密数据--五种方式(base64加密、md5加密、sha1加密、字符串方法加密、AES加密)

    1.base64加密(包括小写字母a-z、大写字母A-Z、数字0-9、符号\\\"+\\\"、\\\"/\\\"一共64个字符的字符集,另加一个“=”,实际是65个字符) 字符串转换为base64:str64 = window.btoa(str) base64转换为字符串:str=window.atob(str64) 2.md5加密 3.sha1加密   4.字符串的编码和解码(JS函数的escape()和unescape())

    2024年02月16日
    浏览(47)
  • Python使用CBC加密模式进行AES加密

    在这个示例中,我们使用了 cryptography 库的 Cipher、algorithms、modes、backend 和 padding 模块。 encrypt 函数接受明文字符串、密钥和初始向量(IV)作为参数。 我们首先使用 Cipher 类来创建一个 AES 密码器对象,指定所需的 AES 算法、CBC 加密模式和密钥。然后,我们获取密码器的加密

    2024年01月24日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包