蓝戒博客

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

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

2018年10月30日 50130点热度 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 中对话未来。

最新 热点 随机
最新 热点 随机
OpenAI 全量推送 GPT-6 与动态 UI:能点能调,输出还完全免费 打破 40 年 PC 规则,微软联手英伟达推出 GB300 与 RTX Spark:Windows 全面进入“常驻智能体时代” Google 开源 EmbeddingGemma 2:图文音视全打通,多模态 RAG 终于不用拼积木了 万亿开源巨兽炸场,Jira 与 Cloudflare 遭接管:软件工程正经历一场“智能体大重构” 别再靠 Prompt 劝大模型做个好人了!英伟达把安全做进芯片 彻底治好 Agent“记吃不记打”!Google 披露 WikiSkill 架构:让 9B 小模型反杀 27B 的长效知识编译术
不讲废话的 AI 估值 2 亿美元!全面拆解“系统一”决策模型 Jev:70ms 极速响应与工业级实战Cursor 订阅用户的意外彩蛋:独立算力的 Grok Bot 体验指南白嫖 10 亿 Token 与云端虚拟机!Meta Muse 国内成功注册保姆级指南:手把手教你跳过排队狂揽 25 万 Star 封神!黑客松冠军打造的 ECC 到底有多强?把 Claude Code 彻底武装成“工业级正规军”开源神器 VoiceStudio 登顶热榜:本地零成本搞定 ElevenLabs 级声音克隆不用一钉一铆!用豆包大模型徒手撸出古建榫卯3D数字馆,长程 Coding 到底有多硬核?
websocket断线重连实践解决方案 为什么你狂学上百个“搞钱套路”依然一事无成?如何建立战略思维破局 html5日历输入类型date实现浏览器原生日历 深度拆解 Prime Agent:带自进化外挂的开源 RLM 智能体 MCP 服务器深度解析:连接大模型语言与外部世界的桥梁 微信小程序开发资源汇总
最近评论
cywcd 发布于 3 周前(09月22日) 《牛来跑酷》游戏链接地址已更新: 1. Gemini 3.7 Flash 版 牛来跑酷: htt...
渔夫 发布于 11 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 10 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

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

京ICP备12026697号-2