更新记录
1.0.0(2026-01-01) 下载此版本
无
平台兼容性
uni-app(3.6.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
uni-app x(3.6.15)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
cr-crypto
cr-crypto 是一个移植自 Google Dart Crypto 包的 UniApp / JS SDK 插件。
它提供了纯 JavaScript 实现的加密哈希函数,旨在为 UniApp 开发者提供与 Dart crypto 包完全一致的 API 体验和功能。
✨ 特性
- 纯 JavaScript 实现:无原生依赖,兼容 UniApp 所有平台 (App-VUE, App-NVUE, H5, 小程序)。
- Dart API 兼容:完全复刻 Dart
crypto包的类结构和调用方式 (Digest,Hash,hmac等)。 - 支持算法:
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- SHA-512/224
- SHA-512/256
- HMAC (支持上述所有哈希算法)
- 增量更新 (Chunked Processing):支持分块处理大数据,内存占用低。
📦 安装
在插件市场导入 cr-crypto 到您的项目中。
🚀 快速上手
1. 基础哈希计算 (One-shot)
import { md5, sha1, sha256 } from '@/uni_modules/cr-crypto/js_sdk';
// 计算字符串的 SHA-256
const text = 'Hello World';
// 注意:如果运行环境支持 TextEncoder (如 H5, App-Vue3),可直接使用。
// 在某些小程序或老版本 App 环境可能需要 polyfill 或手动转换。
const bytes = new TextEncoder().encode(text); // 转换为 Uint8Array
// SHA-256
const digest256 = sha256.convert(bytes);
console.log('SHA-256:', digest256.toString());
// Output: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
// MD5
const digestMd5 = md5.convert(bytes);
console.log('MD5:', digestMd5.toString());
// Output: b10a8db164e0754105b7a99be72e3fe5
2. HMAC (密钥哈希消息认证码)
import { Hmac, sha256 } from '@/uni_modules/cr-crypto/js_sdk';
const key = new TextEncoder().encode('secret-key');
const data = new TextEncoder().encode('message');
const hmac = new Hmac(sha256, key);
const digest = hmac.convert(data);
console.log('HMAC-SHA256:', digest.toString());
3. 分块处理 (Chunked Processing)
适用于大文件或流式数据处理。
import { sha256 } from '@/uni_modules/cr-crypto/js_sdk';
const part1 = new TextEncoder().encode('Hello ');
const part2 = new TextEncoder().encode('World');
const sink = sha256.startChunkedConversion({
add: (digest) => {
console.log('Result:', digest.toString());
},
close: () => {
console.log('Closed');
}
});
sink.add(part1);
sink.add(part2);
sink.close();
// Result will be same as sha256.convert('Hello World')
🛠 API 对照
本插件 API 设计严格遵循 Dart package:crypto 规范:
| Dart Class | JS SDK Class | 说明 |
|---|---|---|
Hash |
Hash |
所有哈希算法的基类 (如 sha256 是其实例) |
Digest |
Digest |
哈希计算结果,包含 bytes 和 toString() |
Hmac |
Hmac |
HMAC 算法实现 |
📄 许可证
MIT License

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 0
赞赏 0
下载 12812993
赞赏 1835
赞赏
京公网安备:11010802035340号