更新记录

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 哈希计算结果,包含 bytestoString()
Hmac Hmac HMAC 算法实现

📄 许可证

MIT License

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。