Cocos Creator升級3x版本之后就不再支持js了,直接裝包crypto-js會報錯,require 函數(shù)在ts里面 根本就不能識別,但是我們項目中需要用到j(luò)s的包來實現(xiàn)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);
}