vue中使用AES加密

简介
  • AES 是一种对称加密,即加密和解密是相同的密钥
  • 前端要使用 AES 加密,依赖的是 crypto-js,所以必须先引入
  • 本文采用的密钥长度是16位
  • AES 加密有base64 和 不是采用base64 两种,加密解密要保持一致
具体使用
  1. 首先安装AES,npm i crypto-js --save
  2. 在项目目录中新建一个 ase.js 文件,目录根据自己的项目建立就行,以下不是采用base64加密
import CryptoJS from 'crypto-js'
export default {//加密
  encrypt(word, keyStr){ 
    // 设置一个默认值,如果第二个参数为空采用默认值,不为空则采用新设置的密钥
    keyStr = keyStr ? keyStr : 'asdnhgtrfvfdsloi';
    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 ? keyStr : 'asdnhgtrfvfdsloi';
    var key  = CryptoJS.enc.Utf8.parse(keyStr);
    var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  }
}
  1. 使用时,引入直接使用即可
import Crypto from '@/libs/ase.js';

// 第一个参数需要加密或者解密的字符串,第二个参数是加密解密需要的字符
let asde = Crypto.encrypt('12344','asdnhgtrfvfdsloi');
let d = Crypto.decrypt(asde,'asdnhgtrfvfdsloi')
console.log(asde);
console.log(d);
  1. 使用过程可能遇到的报错
    在这里插入图片描述

  2. 一般遇到这个是因为给的加密密文不对,解密解析不了

  3. 采用base64 加密的写法

import CryptoJS from 'crypto-js/crypto-js'

// 默认的 KEY 与 iv 
const KEY = CryptoJS.enc.Utf8.parse("123");//""中与后台一样  密码
const IV = CryptoJS.enc.Utf8.parse();//""中与后台一样

/**
 * AES加密 :字符串 key iv  返回base64
 */
export function Encrypt(word, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

    let srcs = CryptoJS.enc.Utf8.parse(word);
    var encrypted = CryptoJS.AES.encrypt(srcs, key, {
        // iv: iv,
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
 
    return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}

/**
 * AES 解密 :字符串 key iv  返回base64
 *
 */
export function Decrypt(word, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

    let base64 = CryptoJS.enc.Base64.parse(word);
    let src = CryptoJS.enc.Base64.stringify(base64);

    var decrypt = CryptoJS.AES.decrypt(src, key, {
        // iv: iv,
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });

    var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    
    return decryptedStr.toString();
}

转载:https://www.cnblogs.com/libo0125ok/p/9224121.html
https://www.cnblogs.com/chaoyuehedy/p/9947381.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3实现AES数据加密,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了crypto库。 2. 在Vue组件,引入crypto库并导入Crypto对象。 3. 创建一个方法,比如encryptAES,用于进行AES加密。 4. 在encryptAES方法使用Crypto对象调用encrypt方法对数据进行加密。加密的方式可以选择AES-CBC模式。 5. 在调用encrypt方法时,传入需要加密的数据和密码作为参数。密码需要先进行AES加密,可以使用Crypto对象的encrypt方法。 6. 在Vue模板,调用encryptAES方法并传入需要加密的数据。 通过以上步骤,你可以在Vue 3实现AES数据加密。这样可以增加数据的安全性,并确保前后端使用相同的加密格式进行对比,以实现安全登陆。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue 使用AES 加密](https://blog.csdn.net/qq_42108937/article/details/125291710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [如何基于python3和Vue实现AES数据加密](https://download.csdn.net/download/weixin_38647517/12853811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值