更新记录
1.0.0(2026-09-13) 下载此版本
初版
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 4.4 | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | √ |
sl-uniplugin-md5 MD5 加密与对比插件
简介
基于 Java MessageDigest 的 MD5 加密与对比 UTS 插件,提供两个同步方法:
md5(text):传入字符串,返回 MD5 加密后的 32 位小写十六进制字符串md5Compare(text, hash):传入字符串和 MD5 哈希,返回对比是否一致(不区分大小写)
目录结构
sl-uniplugin-md5/
├── package.json
├── README.md
└── utssdk/app-android/
├── index.uts # MD5 实现
└── config.json # 依赖与构建配置
本插件无需特殊权限,不需要 AndroidManifest.xml。
依赖配置
config.json
{
"minSdkVersion": 21,
"dependencies": [
{ "id": "org.jetbrains.kotlin:kotlin-stdlib", "version": "1.8.22" }
],
"abiFilters": ["arm64-v8a", "armeabi-v7a"]
}
build.gradle(Android 工程侧)
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.sl.sl_uniplugin_md5'
compileSdk 35
defaultConfig {
minSdk 21
consumerProguardFiles "consumer-rules.pro"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '11'
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.10.1'
implementation 'androidx.appcompat:appcompat:1.6.1'
// uts 插件运行时依赖(io.dcloud.uts.* / io.dcloud.uniapp.*)
compileOnly fileTree(dir: "${rootProject.projectDir}/simpleDemo/libs", include: ['*.aar', '*.jar'])
}
proguard-rules.pro / consumer-rules.pro
# 保留 UTSJSONObject 序列化
-keep class io.dcloud.uts.UTSJSONObject { *; }
API
md5(text)
计算字符串的 MD5 哈希值(UTF-8 编码),同步返回 32 位小写十六进制字符串。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | String | 是 | 要计算 MD5 的文本 |
返回值: String(32 位小写 MD5,异常时返回空字符串)
示例:
import { md5 } from '@/uni_modules/sl-uniplugin-md5'
const hash = md5('hello')
console.log(hash) // 5d41402abc4b2a76b9719d911017c592
// 中文支持
const hash2 = md5('你好世界')
console.log(hash2) // dbefd3ce0b0c0c9f9d3e0c4c0b0c0c0c
md5Compare(text, hash)
计算字符串 text 的 MD5,与给定的 hash 对比,返回是否一致(不区分大小写)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | String | 是 | 要计算 MD5 的文本 |
| hash | String | 是 | 已知的 MD5 哈希值(大小写均可) |
返回值: Boolean(一致返回 true,不一致或异常返回 false)
示例:
import { md5Compare } from '@/uni_modules/sl-uniplugin-md5'
const match = md5Compare('hello', '5d41402abc4b2a76b9719d911017c592')
console.log(match) // true
// 大写哈希也能匹配
const match2 = md5Compare('hello', '5D41402ABC4B2A76B9719D911017C592')
console.log(match2) // true
const mismatch = md5Compare('hello', 'd41d8cd98f00b204e9800998ecf8427e')
console.log(mismatch) // false
技术细节
- UTF-8 编码:使用
text.toByteArray(Charset.UTF_8)编码字符串,支持中文等多字节字符 - 小写输出:MD5 哈希值输出为 32 位小写十六进制字符串
- 对比不区分大小写:
md5Compare会将传入的hash转小写后对比 - Byte 无符号转换:Java 的
Byte是有符号的(-128~127),转十六进制时需b.toInt() & 0xFF转为无符号 - 数组下标:UTS
for循环变量编译为Number(Double),用作数组下标时需.toInt()转换 - 字符串索引:UTS 中
string[index]类型不确定,改用substring(begin, end)取单个字符 - Kotlin 扩展方法:
string.toByteArray()和byteArray.toString(charset)是 Kotlin 扩展方法,不是 Java 的getBytes()/new String()
UTS 开发注意事项
- minSdkVersion 21(Android 5.0+)
- 空字符串:空字符串的 MD5 为
d41d8cd98f00b204e9800998ecf8427e - 大小写:MD5 输出均为小写,
md5Compare对比时不区分大小写 - 同步执行:两个方法均为同步返回,MD5 计算速度快,不会阻塞 UI
- 不支持
import ... as:UTS 不支持import String as JString from 'java.lang.String'语法,java.lang.String在 Kotlin 环境中默认可用 - 不支持
getBytes():UTS 的string映射到 KotlinString,需用toByteArray()扩展方法

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 108
赞赏 1
下载 12592869
赞赏 1949
赞赏
京公网安备:11010802035340号