蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 研发说
  3. 正文

强大的前端加密/解密js库crypto-js使用解析

2018年10月30日 49819点热度 0人点赞 0条评论

crypto-js

crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。

1.使用方法:

1.1. 步骤

1.1.1.安装:
npm install crypto-js

1.1.2.使用示例:

ES6模块引入方法:

import sha256 from 'crypto-js/sha256';
import hmacSHA512 from 'crypto-js/hmac-sha512';
import Base64 from 'crypto-js/enc-base64';

模块加载引入方法:

var AES = require("crypto-js/aes");
var SHA256 = require("crypto-js/sha256");

页面标签引入方法:


1.1.3.vue中使用实例:

const CryptoJS = require('crypto-js');  //引用AES源码js
    
    const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");  //十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');   //十六位十六进制数作为密钥偏移量
    
    //解密方法
    function Decrypt(word) {
        let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
        let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
        let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
        let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
        return decryptedStr.toString();
    }
    
    //加密方法
    function Encrypt(word) {
        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.ciphertext.toString().toUpperCase();
    }
    
    export default {
        Decrypt ,
        Encrypt
    }

上面的代码中的 key 是密钥 ,iv 是密钥偏移量,这个一般是接口返回的,或者前后端协定一致。

值得注意的是密钥的长度,由于对称解密使用的算法是 AES-128-CBC算法,数据采用 PKCS#7 填充 , 因此这里的 key 需要为16位
定义加密方法Encrypt和解密方法Decrypt  ,最后通过 export default 将其暴露出去,方便在需要的时候进行引入

1.2. 前端简单加解密

文本加密

var CryptoJS = require("crypto-js");
 
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
 
// Decrypt
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
 
console.log(plaintext);

对象加密

var CryptoJS = require("crypto-js");
 
var data = [{id: 1}, {id: 2}]
 
// Encrypt
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123');
 
// Decrypt
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
 
console.log(decryptedData);

1.3. 项目地址:

https://github.com/brix/crypto-js

1.4. API

http://cryptojs.altervista.org/api/

参考资料:

1. https://www.jianshu.com/p/a47477e8126a

2. https://blog.csdn.net/weixin_40918145/article/details/81253772

标签: cryptoJS javascript js 加密 解密
最后更新:2025年9月12日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
Claude Code最强国产平替来了,DeepSeek原生Agent省钱狂魔! 彻底告别偷听!本地AI实时语音来了:仅需4G显存,免费开源支持中文 彻底告别API焦虑!OmniRoute带你白嫖16亿Token,这款开源AI网关火了 别再给AI当“擦屁股保姆”了!Ego lite浏览器:真正实现人机“同屏打工”的效率神器 别再把私人邮箱喂给AI了!解析QQ邮箱Agent Mail:专为智能体打造的“数字工位” 4GB畅跑“平替版Claude”,百万上下文Qwythos-9B炸场开源圈
别再无脑吹了!Claude Fable 5 刷屏背后,有些真相 Anthropic 根本没告诉你Holo 3.1 惊艳登场:把电脑交给本地 AI“代驾”到底多爽?这个开源神级工具: Headroom让 Token 直接暴跌 95%网页爬虫的终极“作弊码”:30项Bot检测全绿,CloakBrowser是如何把反爬系统按在地上摩擦的?别再用AI洗稿了!学术圈疯传的“降维打击”神器:13个Agent帮你干翻垃圾论文评审笔记本变身超级AI!谷歌Gemma 4 12B彻底掀翻本地多模态的天花板
吊打Midjourney?阿里开源Z-Image神级模型,16G显存无压力,ComfyUI秒级出图全攻略! AngularJs中ui-router全攻略 vue项目开发的一些总结 html5+css3动画经典案例收集整理 口袋里的蓝调 HTTP协议详解(经典收藏)
最近评论
渔夫 发布于 8 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2