关于crypto-js的使用

从这里 https://github.com/brix/crypto-js
下载了crypto-js的包
然后copy到项目的 脚本目录里
ccc编辑器询问是否以插件形式导入, 就选是了
然后在代码引入时
image

都不行, CryptoJS = undefined

最后想到 插件 莫非不需要引入 crypto-js.js这个文件

就去掉了引入部分代码!
然后就可以了!

image

我想问问大家 这个 crypto-js 库的正确使用方式是怎么样的?

导入插件没问题,不导入的话预览没问题但打包就找不到文件了。
在项目中使用想要提示的话引入.d.ts就可以了

也不需要引入文件,全局使用即可

没那么复杂

  1. npm i crypto-js -S

const CryptoJS = require(“crypto-js”); 即可使用

npm 这个没用过啊!
另外这种方式 就是只使用js代码 不是插件形式吧!

我目前是以插件方式把 crypto包全部放到工程里了

还是说 只需要一个 cryptojs文件即可呢
image
这个文件是之前往上找到的 只用了里边的md5

单独的 CryptoJS这个文件 似乎是不全 有些api没有

我也是npm下载的包,预览没问题但打包原生后找不到,就把包拖成插件了
但我只拖了主文件crypto-js.js.zip (31.4 KB)

然后npm全局下载npm i --save-dev @types/crypto-js
项目只用直接CryptoJS.enc.Utf8.parse(data_str)这样用就可以了,没有做引入

需要单文件可以webpack打包使用

是只把这个文件( crypto-js.js) 拖到 工程目录里吗?然后把这个文件设置为插件?

mark一下~

https://store.cocos.com/app/detail/3296
这个有现成呢 :rofl:

他这个也是 直接把 crypto的压缩包解压后直接拖到 脚本目录
然后

这么用!没什么问题,只是那个压缩包的js文件都需要吗?不都需要又不好区分!哎!~

直接用npm的方式最简单

MD5加密

CryptoJS.MD5('待加密字符串').toString()

base64加密

CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse('待加密字符串'))

base64解密

CryptoJS.enc.Base64.parse("待解密字符串").toString(CryptoJS.enc.Utf8)

AES简略加密

CryptoJS.AES.encrypt('待加密字符串', '秘钥').toString()

AES简略解密

CryptoJS.AES.decrypt('待解密字符串', '秘钥').toString(CryptoJS.enc.Utf8)

自定义AES加解密函数

以上示例是2个简略aes加解密计划,大部分状况下,咱们须要自定义aes加解密更多的参数,比方加密模式、填充等。

const key = CryptoJS.enc.Utf8.parse("秘钥");  //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('偏移量');   //十六位十六进制数作为密钥偏移量

//解密办法
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();
}

//以上办法中 mode就是加密模式,padding是填充。

来源:https://lequ7.com/guan-yu-qian-duan-guo-chan-jie-kou-gong-ju-apipost-ru-he-li-yong-cryptojs-dui-qing-qiu-can-shu-jin-xing-md5aes-jia-jie-mi.html

不会用啊, 有详细使用步骤吗?或者教程文档之类的?

@kome2000 vscode 打开项目终端 输入这个

CocosCreator3.5.x引入第三方库crypto-js

题主可以看看 我博客新写的这个用法,懒得搬运了

是的,2.x目前只能这样搞,每个平台都要测试一下能否可用,我目前只知道IOS,Android,VIVO小游戏可用,字节小游戏不能用只有关闭加密