Cocos Creator升级3x版本之后就不再支持js了,直接装包crypto-js会报错,require 函数在ts里面 根本就不能识别,但是我们项目中需要用到js的包来实现AES加密解密,尝试了多种方法终于修成正果
crypto-js文件地址
https://gitee.com/menglin1997/crypto-js.min
使用方法
import CryptoJS from "crypto-js.min.js";
const aseKey = "12345678" //秘钥必须为:8/16/32位
var message = "abcd";
// https://forum.cocos.org/t/topic/106414
//加密
var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString();
console.log(encrypt); //nlW4ll0zjyXE7NvC/wO9rQ==
//解密
var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
console.log(decrypt); //abcd
TS中使用
// 加密参考文档
// https://www.cnblogs.com/pinkpolk/articles/13600696.html
// https://forum.cocos.org/t/topic/106414
// 加密
export function encrypt(message:string) {
return CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(Global.aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString();
}
// 解密
export function decrypt(message:string) {
return CryptoJS.AES.decrypt(message, CryptoJS.enc.Utf8.parse(Global.aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
}