CryptoJS是标准安全加密算法的JavaScript实现,运行速度快,接口简单,见名知意。文档说明可参考:CryptoJS文档说明。

CryptoJS的实现主要有哈希算法,HMAC、加密算法、以及常用编解码算法。

哈希算法,如MD5、SHA-1、SHA-2等。

加密算法,如AES、DES等。

编解码算法,如Base64、Hex16等。

一、安装crypto-js

npm install crypto-js

二、封装加解密方法

import CryptoJS from 'crypto-js'/*** AES加密* @param plainText 明文* @param keyInBase64Str base64编码后的key* @param ivInBase64Str base64编码后的初始化向量(只有CBC模式下才支持)* @return base64编码后的密文*/
export function encryptByAES(plainText, keyInBase64Str, ivInBase64Str) {let key = CryptoJS.enc.Base64.parse(keyInBase64Str)let iv = CryptoJS.enc.Base64.parse(ivInBase64Str)let encrypted = CryptoJS.AES.encrypt(plainText, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7})// 这里的encrypted不是字符串,而是一个CipherParams对象return encrypted.ciphertext.toString(CryptoJS.enc.Base64)
}/*** AES解密* @param cipherText 密文* @param keyInBase64Str base64编码后的key* @param ivInBase64Str base64编码后的初始化向量(只有CBC模式下才支持)* @return 明文*/
export function decryptByAES(cipherText, keyInBase64Str, ivInBase64Str) {let key = CryptoJS.enc.Base64.parse(keyInBase64Str)let iv = CryptoJS.enc.Base64.parse(ivInBase64Str)// 返回的是一个Word Array Object,其实就是Java里的字节数组let decrypted = CryptoJS.AES.decrypt(cipherText, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7})return decrypted.toString(CryptoJS.enc.Utf8)
}

三、vue中使用

let secret = 'sQPoC/1do9BZMkg8I5c09A=='
let cipherText = encryptByAES('Hello', secret, secret)
let plainText = decryptByAES(cipherText, secret, secret)
console.log(`Hello加密后的密文为:${cipherText}`)
console.log(`解密后的内容为:${plainText}`)

————————————————

版权声明:本文为CSDN博主「凌波漫步&」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lingbomanbu_lyl/article/details/125238945

前端CryptoJS加解密相关推荐

  1. 微信小程序前端RSA加解密

     开门见山地说,希望各位前端不要搜到这篇文章,因为我总感觉在小程序端去做RSA的加解密总有种脱了裤子放屁多此一举的感觉.但是需求来的时候总是说不准的,接下来我就给大家推荐一种在小程序端比较方便,操作不 ...

  2. 三分钟撸完前后端crypto-js加解密,你学废了吗?

    文章目录 前言 一.AES概念 二.前端加密 1.安装依赖库 2.实现AES加密算法 3.前端演示效果 三.后端加密 1.加密工具类 2.加密测试 四.Security实现密码加解密 1.前台加密 1 ...

  3. java AES加密 前端CryptoJS AES解密

    问题 java加密生成base64位字符串,前端使用Java提供的密钥,前端无法解密出数据. java后台加密使用AES/ECB/PKCS5Padding 数据准备: 一个固定秘钥,互相约定 B7E1 ...

  4. 偏前端 + rsa加解密 + jsencrypt.min.js--(新增超长字符分段加解密)

    html部分 <html><head><title>JavaScript RSA Encryption</title><meta charset= ...

  5. 前端 crypto-js aes 加解密

    背景 前段时间公司做项目,该项目涉及到的敏感数据比较多,经过的一波讨论之后,决定前后端进行接口加密处理,采用的是 AES + BASE64 算法加密~ 网上关于 AES 对称加密的算法介绍看上一篇! ...

  6. 前端CryptoJS和Java后端数据互相加解密(AES)

    目录 一.序言 二.关于前端CryptoJS 1.CryptoJS简单介绍 2.加密和填充模式选择 3.前端AES加解密示例 (1) cryptoutils工具类 (2) 测试用例 (3) 加解密后输 ...

  7. 前后端RSA互相加解密、加签验签、密钥对生成(Java)

    目录 一.序言 二.关于PKCS#1和PKCS#8格式密钥 1.简介 2.区别 二.关于JSEncrypt 三.关于jsrsasign 四.前端RSA加解密.加验签示例 1.相关依赖 2.crypto ...

  8. rsa加解密 --- jsencrypt.min.js --- 支持长字符串分段加解密

    前端 + rsa加解密 + jsencrypt.min.js–(新增超长字符分段加解密) 分享2种,分段 和 不分段 加解密 --话不多说,直接上代码!~ 最终效果: 首先引入2个js <scr ...

  9. 从零玩转前后端加解密之SM2-sm2

    title: 从零玩转前后端加解密之SM2 date: 2022-08-21 19:42:00.907 updated: 2023-03-30 13:28:48.866 url: https://ww ...

最新文章

  1. js jquery关闭当前窗口
  2. 天马微电子的mes工程师_上海天马微电子MES工程师职位(部门:制造中心/自动化部)怎么样?...
  3. 湖南女子学院 计算机,2019湖南女子学院专业排名
  4. it运维中faq_如何编写系统FAQ
  5. 携号转网可能只会叫好不叫座
  6. 希尔排序的详细过程_算法系列: 10大常见排序算法(4)希尔排序
  7. Java基础学习——安装JDK
  8. sublime test3 安装及配置
  9. onSaveInstanceState()方法问题
  10. 应急响应的基本流程二
  11. 信号与线性系统分析第4版吴大正课后习题答案
  12. 软件需求工程 高校教学平台 项目可行性报告
  13. C++实现【启发式搜索】算法
  14. 全球与中国电动车PTC辅助加热器市场深度研究分析报告
  15. 2021-09-14TL431与LM317的区别
  16. 2021最新WordPress安装教程(一):Centos7安装Apache
  17. java 空格 separater_Java随手记
  18. “裸辞” 备战15天三面美团,交叉面却被吊起来锤
  19. 基础补充——为什么电流的波峰波谷很多毛刺?
  20. MATLAB 幂函数 图像增强

热门文章

  1. 微信小程序——按钮跳转页面
  2. macbook系统和linux区别,Mac OS和Linux有什么区别?
  3. 红米k40定时开关机开启方法讲解
  4. Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...
  5. 学校办公用计算机配备情况,学校办公电脑管理制度
  6. [文摘20070509]管仲
  7. 明仔说机:目前电视盒子哪个最好?五大口碑电视盒子推荐
  8. 30岁的程序员你不懂
  9. DISC职场人格与高效沟通技巧--王伟老师
  10. python反转一个整数、123变成321_python怎么将整数反转输出