怎么在creator项目中使用CryptoJS

网上找的用CryptoJS加密解密代码,测试项目中用到的代码:
this._ws.onopen = function (event) {
cc.log(‘连接websocket成功’);
let pwd = “123456”;
let mi = CryptoJS.AES.encrypt(“这是一个AES加密测试”,pwd);
cc.log(‘发送加密数据:’ + mi);
self._ws.send(mi);
};
this._ws.onmessage = function (event) {
cc.log(‘收到服务器websocket的数据:’ + event.data);
let pwd = “123456”;
var mi = CryptoJS.AES.encrypt(event.data,pwd);
cc.log(‘收到加密数据:’ + mi);
var result = CryptoJS.AES.decrypt(mi,pwd).toString(CryptoJS.enc.Utf8);
cc.log(“解密结果:” + result);
};
但是CryptoJS报undefined,想请教怎么导入CryptoJS库

1赞

CryptoJS.zip (5.7 KB)
把这个JS加入项目,使用的脚本中先导入:
let CryptoJS = require(“CryptoJS”);

4赞

但是你这个怎么使用?提示没有encrypt和decrypt方法。

https://code.google.com/archive/p/crypto-js/wikis/QuickStartGuide_v3beta.wiki

1赞

不知道你经过测试没有,很多方法都不能用的,md5可以用,aes.encrpyt和aes.decrypt结果对不上。Base64也会报d.clamp找不到错误。

是的。。。这个只包含MD5和AES加、解密。因为楼主要求的是这些,正好我自己用的也是这些,其它的包没有导入。Base64的依赖可能没有正确导入,所以用起来麻烦一些:

// 将Hello, World!转回字符串
console.log(CryptoJS.AES.decrypt(CryptoJS.AES.encrypt("Hello, World!","密码"),"密码").toString(CryptoJS.enc.Utf8));

// 使用Base64编码Hello, World!
console.log(CryptoJS.AES.decrypt(CryptoJS.AES.encrypt("Hello, World!",""),"").toString(CryptoJS.enc.Base64));
1赞

嗯,我已经修改Npm安装版的了,这样可以和服务器共用。Encrypt.zip (9.2 KB)

你这个怎么用啊???

可以 了

加密的数据: Nihaodafasdkfasdlflsdaf你好啊阿斯蒂芬十大
数据加密后: bAHDsMKdwoIHwpFaw4cbHsODw6dDwosvKmrCocKLXMKHwqNjwp/DunNswq09MnUfw6rC
kEUywrcHwol7OyBJwqktw4vCoMOmw6ptajvChHw/w7rDqQ==
数据解密后: Nihaodafasdkfasdlflsdaf你好啊阿斯蒂芬十大

mark

mark

请问你是如何导入到creator中的啊?

地址到是找到了 https://github.com/brix/crypto-js/tree/89ce2460ab1a10cdd0cefb686966414ce6a2ee6e 不知道如何导入

已解决,将core脚本勾选为插件即可

1赞

那么多文件,具体导入哪个文件

那么多文件,具体导入哪个文件

把需要的文件里的代码直接复制到core里面。我们把core作为插件导入,编译ios报es6的错误,就没有作为插件,当做普通脚本require了。

1.CryptoJS
// AES加密
let str = CryptoJS.AES.encrypt(data, key, 256).toString();
// AES解密
let str = CryptoJS.AES.decrypt(data, key, 256);
str = str.toString(CryptoJS.enc.Utf8).toString();

谢谢大佬

非常感谢楼主分享~~~,我的项目加入后 加密解密 报了 Cannot read property ‘createEncryptor’ of undefined~~求救