赞
踩
地址:https://blog-static.cnblogs.com/files/gygg/crypto-js.js
以ECB模式为例
- const CryptoJS = require('crypto-js');
-
- // 默认的 KEY 与 iv 如果没有给
- const KEY = CryptoJS.enc.Utf8.parse('QDCARES20240307Y'); // 十六位十六进制数作为密钥
- const IV = CryptoJS.enc.Utf8.parse('RTGEtgd12ytb67VR'); // 十六位十六进制数作为密钥偏移量
-
- /**
- * AES加密 :字符串 key iv 返回base64
- * 把默认的KEY 与 iv赋值给变量
- * 如果有keyStr 重新赋值密钥
- * 重新设置密钥偏移量
- */
- function encrypted(word, keyStr, ivStr) {
- let key = KEY;
- let iv = IV;
-
- if (keyStr) {
- key = CryptoJS.enc.Utf8.parse(keyStr);
- iv = CryptoJS.enc.Utf8.parse(ivStr);
- }
- const srcs = CryptoJS.enc.Utf8.parse(word);
- const encrypted = CryptoJS.AES.encrypt(srcs, key, {
- iv, // 偏移量
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- });
- return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
- }
-
- // 解密
- function decrypted(word, keyStr, ivStr) {
- let key = KEY;
- let iv = IV;
-
- if (keyStr) {
- key = CryptoJS.enc.Utf8.parse(keyStr);
- iv = CryptoJS.enc.Utf8.parse(ivStr);
- }
- const base64 = CryptoJS.enc.Base64.parse(word);
- const src = CryptoJS.enc.Base64.stringify(base64);
- const decrypted = CryptoJS.AES.decrypt(src, key, {
- iv, // 偏移量
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- });
-
- const decryptedStr = decrypted.toString(CryptoJS.enc.Utf8);
- return decryptedStr.toString();
- }
- module.exports = {
- encrypted,
- decrypted
- };

加密使用
解密使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。