更新记录
1.0.2(2024-11-27) 下载此版本
本次仅增加使用 babeljs 和 强力混淆 的说明。加解密方法并没有改变。
1.0.1(2023-08-03) 下载此版本
优化
1.0.0(2023-08-03) 下载此版本
首次更新
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.8.3 app-vue app-nvue | √ | √ | √ | √ | √ | √ |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
√ | √ | √ | √ |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ | √ | √ | √ |
cainiao-crypto
依赖 cryptojs
// 不同的包工具可能有兼容问题,使用你正在使用的工具安装
// 我习惯使用 npm
npm i crypto-js -S
请先修改 密钥 和 偏移量,并备份保存好
文件路径/js_sdk/cainiao-crypto/cainiao-crypto.js
const keyCode = '1234567890ABCDEF' //十六位十六进制数作为密钥
const ivCode = 'FEDCBA0987654321' //十六位十六进制数作为密钥偏移量
在使用的页面直接引用
// 从自己所放到路径引入,检查下面路径是否正确
import { Encrypt, Decrypt } from '@/js_sdk/cainiao-crypto/cainiao-crypto.js'
// 加密
const enStr = Encrypt(JSON.stringify(str))
// 解密
const deStr = JSON.parse(Decrypt(enStr))
性能问题
JSON.stringify和JSON.parse在数据较大时有性能问题,所以不建议加密特别大的数据。除非你有替换或者优化的方法
安全性
请保管好密钥和偏移量
没有绝对的安全,对安全性有高要求的还是使用非对称加密比较好。
因为是可逆加密,密钥和偏移量存储在前端,建议使用以下方法增加安全性:
- 对代码尤其是
密钥和偏移量
进行加密混淆,加密混淆工具网上有很多,可自己查找。 - 可以试试以下两种加密混淆,二选一,建议使用
加密混淆1
, - 如果不会配置,或者加密后的文件报错无法运行,就用
加密混淆2
吧
-
首先要将包含密钥和偏移量、加密方法所在的
js
文件进行【babeljs】和压缩处理,防止加密报错,选中以下选项即可- [x] lineWrap
- [x] react【不选会导致加密后报错,原因不明】
- [x] stage-3
- [x] stage-2
- [x] stage-1
- [x] stage-0
- [x] modules false
- [x] bug fixes
- [x] force all transforms【必选】
-
【加密混淆1】,选中以下选项即可
强力混淆,会略微增加代码的运行速度,肉眼看不出来,不影响使用
- [x] 常规配置
- [x] 标记
- [x] 压缩成一行
- [x] 防止格式化
- [x] 死代码注入
- [x] 变量规则混淆
- [x] 函数&变量全部重命名
- [x] 保留字符串 【如果报错找不到某些字符串,请补充】
- [x] crypto-js
- [x] 保留变量:【如果报错找不到某些变量,请补充】
- [x] CryptoJS
- [x] process
- [x] plus
- [x] uniCloud
- [x] uni
- [x] 常规配置
-
【加密混淆2】,选中以下选项即可
- [x] 压缩成一行
- [x] 防止格式化
- [x] 分割字符串
- [x] 变量加密
- [x] Unicode转义序列
- [x] 调试保护
- [x] 禁用控制台输出
-
如果是在app中使用:
- 打包时选择
“对配置的js/nvue进行原生混淆”
,此选请仔细阅读【配置指南】 - 打包后对安装包进行加固
- 打包时选择