关于crypto-js的使用

没那么复杂

  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小游戏可用,字节小游戏不能用只有关闭加密

crypto 我现在是整包copy到项目
android手机上跑没问题

https://www.cnblogs.com/qiqi715/p/9623421.html#14--wordarray对象utf8字符串

WordArray (An array of 32-bit words.

WordArray,我把它理解成CryptoJS中定义的 新的 数据类型,叫“单词数组”。

1.1 : 初始化

var wordArray = CryptoJS.lib.WordArray.create();//创建一个空的 WordArray对象

1.2 : WordArray 对象 —>16进制字符串

 var string = wordArray.toString();//默认CryptoJS.enc.Hex,即16进制字符串
 var string = wordArray.toString(CryptoJS.enc.Utf8);//utf-8字符串

1.3 : 16进制字符串 —>WordArray对象

var wordArray = CryptoJS.enc.Hex.parse(hexString);

1.4 : WordArray对象—>utf8字符串

var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
//等价于2.2中 wordArray.toString(CryptoJS.enc.Utf8);

1.5 : utf8字符串—>WordArray对象

 var wordArray = CryptoJS.enc.Utf8.parse(utf8String);

1.6 : WordArray对象—>Base64字符串

var base64String = CryptoJS.enc.Base64.stringify(wordArray);

1.7 : Base64字符串—>WordArray对象

var wordArray = CryptoJS.enc.Base64.parse(base64String);