# 加密功能依赖安装说明 ## 必需依赖 为了使用接口加密功能,需要安装以下 npm 包: ### 1. crypto-js 用于 AES 对称加密 ```bash npm install crypto-js ``` ### 2. jsencrypt 用于 RSA 非对称加密 ```bash npm install jsencrypt ``` ## 安装步骤 ### 方式一:使用 HBuilderX 1. 打开项目根目录 2. 右键点击项目名称 3. 选择"使用命令行窗口打开所在目录" 4. 执行以下命令: ```bash npm install crypto-js jsencrypt ``` ### 方式二:手动安装 如果项目根目录没有 `package.json`,需要先创建: 1. 创建 `package.json` 文件: ```json { "name": "stm32-iot-app", "version": "1.2.0", "description": "STM32 IoT UniApp", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "crypto-js": "^4.2.0", "jsencrypt": "^3.3.2" }, "author": "", "license": "MIT" } ``` 2. 执行安装命令: ```bash npm install ``` ## 验证安装 安装完成后,检查项目根目录下是否生成了 `node_modules` 文件夹,并包含以下目录: - `node_modules/crypto-js` - `node_modules/jsencrypt` ## 常见问题 ### Q1: HBuilderX 提示找不到模块? **解决方案:** 1. 确保已正确安装依赖 2. 重启 HBuilderX 3. 清除项目缓存:菜单栏 → 运行 → 清除项目缓存 4. 重新编译项目 ### Q2: 小程序端提示 crypto-js 不可用? **解决方案:** 某些小程序平台对 Node.js 模块支持有限,可能需要: 1. 使用小程序原生 API 2. 使用兼容版本的加密库 3. 参考各平台文档进行适配 ### Q3: App 端运行报错? **解决方案:** 1. 检查 `manifest.json` 中的 App 模块配置 2. 确保在自定义基座中测试 3. 云打包时确保包含了 node_modules ## 平台兼容性 | 平台 | crypto-js | jsencrypt | 备注 | |------|-----------|-----------|------| | H5 | ✅ | ✅ | 完全支持 | | App (iOS) | ✅ | ✅ | 完全支持 | | App (Android) | ✅ | ✅ | 完全支持 | | 微信小程序 | ⚠️ | ⚠️ | 需要测试验证 | | 支付宝小程序 | ⚠️ | ⚠️ | 需要测试验证 | | 其他小程序 | ⚠️ | ⚠️ | 需要测试验证 | **注意:** 小程序平台可能需要额外配置或使用替代方案。 ## 替代方案(针对小程序) 如果在小程序端遇到兼容性问题,可以考虑: ### 1. 使用小程序原生加密 API ```javascript // 微信小程序 wx.crypto.getRandomValues() ``` ### 2. 使用 uni-app 插件市场的加密插件 搜索关键词: - AES 加密 - RSA 加密 - 数据加密 ### 3. 后端降级处理 在小程序端关闭加密,仅在 App 和 H5 端使用: ```javascript // config.js export default { enableEncrypt: process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'app-plus', // ... } ``` ## 技术支持 - UniApp 官方文档:https://uniapp.dcloud.net.cn/ - crypto-js 文档:https://github.com/brix/crypto-js - jsencrypt 文档:https://github.com/travist/jsencrypt