更新记录

1.0.0(2026-04-20)

  • 首次发布
  • RSA 非对称加密:密钥生成、公钥加密、私钥解密、签名、验签、分段加解密(超长数据)
  • DSA 数字签名:密钥生成、签名、验签
  • 对称加密:支持 AES、ARCFOUR、Blowfish、DES、DESede、RC2 算法
  • PBE 密码加密:支持 PBEWithMD5AndDES、PBEWithSHA1AndDESede
  • 摘要算法:支持 MD5、SHA-1、SHA-256、SHA-384、SHA-512,输出格式支持 hex 和 base64
  • HMAC 消息认证:支持 HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA512
  • 所有接口均提供异步(Promise)和同步(Sync)两种调用方式
  • 密钥格式:支持 PKCS#8 Base64 和 PEM 两种格式
  • 加密模式:对称加密支持 ECB/CBC 模式和 PKCS5Padding/NoPadding 填充
  • 国际化:内置中文/英文语言包,支持 t()/tf() 翻译函数和 getLocale()/setLocale() 语言切换
  • 耗时统计:提供 startTime()/getElapsed()/getElapsedMs() 工具函数

平台兼容性

uni-app(4.0)

Vue2 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS 鸿蒙
× 1.0.0 × × 1.0.0 1.0.0 5.0 1.0.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.0)

Chrome Safari Android Android插件版本 iOS 鸿蒙 微信小程序
× × 5.0 1.0.0 × ×

dida2-crypto 加密算法库

基于 UTS 的跨平台加密算法插件,提供 RSA、DSA、AES、PBE、摘要、HMAC 等常用密码学算法,所有接口均提供异步(Promise)和同步(Sync 后缀)两种调用方式。

支持平台:Android、HarmonyOS

iOS 暂不支持。作者因 Apple 开发者账号过期,近期无更新计划。如有人能提供 Apple 开发者账号用于测试,可联系作者推进 iOS 版本支持。如需支持新的算法,也欢迎向作者反馈。

平台兼容性

框架 Android iOS 鸿蒙
uni-app (vue3)
uni-app x
  • 最低 Android 版本:API 21(Android 5.0)
  • HarmonyOS 版本:API 14+
  • HBuilderX:3.6.8+(Android),4.22+(HarmonyOS)
  • uni-app / uni-app x:4.0+

各平台算法支持总览

以下是各模块在不同平台的支持情况。标注 ✗ 的功能在对应平台调用时会直接抛出错误,请在开发前确认目标平台支持情况。

RSA 非对称加密

功能 Android 鸿蒙 说明
密钥生成(1024/2048/4096)
公钥加密
私钥解密
签名 SHA1/SHA256/SHA384/SHA512 withRSA
验签
PKCS1 填充
OAEP-SHA1 填充
OAEP-SHA256 填充
同步 API(Sync 后缀) ⚠️ 鸿蒙平台调用同步 API 会抛出错误,请使用异步 API

DSA 数字签名

功能 Android 鸿蒙 说明
密钥生成
签名(SHA1withDSA / SHA256withDSA)
验签
同步 API(Sync 后缀)

对称加密

算法 Android 鸿蒙 说明
AES(128/192/256) 鸿蒙平台唯一支持的对称加密算法
ARCFOUR
Blowfish
DES
DESede
RC2
模式 / 填充 Android 鸿蒙 说明
ECB / PKCS5Padding 鸿蒙内部映射为 PKCS7,两者实现相同
ECB / NoPadding 鸿蒙自动补零对齐,解密时自动去除尾部补零
CBC / PKCS5Padding 鸿蒙内部映射为 PKCS7
CBC / NoPadding 鸿蒙自动补零对齐,解密时自动去除尾部补零
同步 API(Sync 后缀) ⚠️ 鸿蒙平台调用同步 API 会抛出错误

PBE 密码加密

算法 Android 鸿蒙 说明
PBEWithMD5AndDES
PBEWithSHA1AndDESede
同步 API(Sync 后缀)

摘要算法

算法 Android 鸿蒙 说明
MD5
SHA-1
SHA-256
SHA-384
SHA-512
同步 API(Sync 后缀) ⚠️ 鸿蒙平台调用同步 API 会抛出错误

HMAC 消息认证码

算法 Android 鸿蒙 说明
HmacMD5
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
同步 API(Sync 后缀) ⚠️ 鸿蒙平台调用同步 API 会抛出错误

通用功能

功能 Android 鸿蒙 说明
耗时统计 startTime()、getElapsed()、getElapsedMs()
平台检测(isHarmonyOS) Android 返回 false,鸿蒙返回 true
密钥格式(PKCS#8 / PEM)

⚠️ 鸿蒙平台重要提醒

如果你需要在鸿蒙平台使用本插件,请务必注意以下限制:

  1. 同步 API 不可用:所有带 Sync 后缀的同步 API(如 generateKeyPairSyncencryptSyncdigestSync 等)在鸿蒙平台会抛出错误,请统一使用异步 API。这是因为鸿蒙 cryptoFramework 仅为异步接口。
  2. DSA 不支持:DSA 密钥生成、签名、验签在鸿蒙平台调用会抛出 DSAError(91104)
  3. PBE 不支持:PBE 加密/解密在鸿蒙平台调用会抛出 SymmetricError(91306)
  4. 对称加密仅支持 AES:Blowfish、DES、DESede、RC2、ARCFOUR 在鸿蒙平台调用会抛出 SymmetricError(91304)
  5. PKCS5Padding 映射为 PKCS7:鸿蒙平台的 PKCS5Padding 内部自动映射为 PKCS7,两者实现完全相同,无需额外处理。
  6. NoPadding 自动补零:AES NoPadding 模式下,输入数据会自动补零至 16 字节对齐,解密时自动去除尾部补零。如原始数据本身以 \0 结尾,可能会丢失尾部零字节,建议使用 PKCS5Padding 填充模式。
  7. 平台判断:使用 isHarmonyOS 常量可在运行时判断当前平台,建议在跨平台代码中使用此常量做条件分支。

快速开始

安装

在 HBuilderX 中通过插件市场导入 dida2-crypto 插件即可。

导入

// 按需导入所需功能
import {
  // RSA
  generateKeyPair, encrypt, decrypt, sign, verify,
  // DSA
  dsaGenerateKeyPair, dsaSign, dsaVerify,
  // 对称加密
  symmetricGenerateKey, symmetricEncrypt, symmetricDecrypt,
  // PBE
  pbeEncrypt, pbeDecrypt,
  // 摘要
  digest,
  // HMAC
  hmac,
  // 平台检测
  isHarmonyOS,
  // 耗时统计
  startTime, getElapsed, getElapsedMs
} from '@/uni_modules/dida2-crypto'

// 导入类型
import type {
  RSAKeyPair, RSAKeyFormat, RSAOptions, RSASignAlgorithm,
  DSAKeyPair, DSAKeyFormat, DSAOptions, DSASignAlgorithm,
  SymmetricAlgorithm, SymmetricMode, SymmetricPadding, SymmetricOptions,
  PBEAlgorithm, PBEOptions, PBEEncryptResult,
  DigestAlgorithm, DigestOutputFormat,
  HmacAlgorithm
} from '@/uni_modules/dida2-crypto'

API 文档

所有接口均提供异步(Promise)同步(Sync 后缀)两种调用方式。

鸿蒙平台:同步 API 会抛出错误,请使用异步 API。详见上方「鸿蒙平台重要提醒」。


RSA

generateKeyPair(keySize?, options?)

生成 RSA 密钥对。

参数 类型 必填 默认值 说明
keySize number 2048 密钥长度(1024/2048/4096)
options.keyFormat RSAKeyFormat 'pkcs8' 密钥格式:'pkcs8''pem'

返回值Promise<RSAKeyPair> / RSAKeyPair

// 异步
const keyPair = await generateKeyPair(2048, { keyFormat: 'pem' })
console.log(keyPair.publicKey)   // PEM 格式公钥
console.log(keyPair.privateKey)  // PEM 格式私钥

// 同步(仅 Android)
const keyPair2 = generateKeyPairSync(2048, { keyFormat: 'pkcs8' })

encrypt(plainText, publicKey, options?)

使用公钥加密。

参数 类型 必填 说明
plainText string 明文
publicKey string 公钥(PKCS#8 Base64 或 PEM 格式)
options.algorithm string 加密算法,默认 'RSA/ECB/PKCS1Padding'

可选加密算法

  • RSA/ECB/PKCS1Padding(默认)
  • RSA/ECB/OAEPWithSHA-1AndMGF1Padding
  • RSA/ECB/OAEPWithSHA-256AndMGF1Padding

返回值Promise<string> — Base64 编码的密文

const encrypted = await encrypt('Hello World', keyPair.publicKey)

decrypt(encryptedBase64, privateKey, options?)

使用私钥解密。

参数 类型 必填 说明
encryptedBase64 string Base64 编码的密文
privateKey string 私钥
options.algorithm string 解密算法,需与加密时一致

返回值Promise<string> — 原文

const decrypted = await decrypt(encrypted, keyPair.privateKey)

sign(plainText, privateKey, options?)

使用私钥签名。

参数 类型 必填 说明
plainText string 待签名内容
privateKey string 私钥
options.signAlgorithm RSASignAlgorithm 签名算法,默认 'SHA256withRSA'

可选签名算法SHA1withRSASHA256withRSASHA384withRSASHA512withRSA

返回值Promise<string> — Base64 编码的签名

const signature = await sign('Hello World', keyPair.privateKey, {
  signAlgorithm: 'SHA256withRSA'
})

verify(plainText, signatureBase64, publicKey, options?)

使用公钥验签。

返回值Promise<boolean> — 验签是否通过

const isValid = await verify('Hello World', signature, keyPair.publicKey, {
  signAlgorithm: 'SHA256withRSA'
})

DSA

⚠️ DSA 仅支持 Android 平台,鸿蒙平台调用会抛出 DSAError(91104)。DSA 仅用于签名/验签,不支持加密/解密。

dsaGenerateKeyPair(keySize?, options?)

生成 DSA 密钥对。

参数 类型 必填 默认值 说明
keySize number 2048 密钥长度:512-1024(必须是 64 的倍数)或 2048、3072
options.keyFormat DSAKeyFormat 'pkcs8' 密钥格式:'pkcs8''pem'

返回值Promise<DSAKeyPair> / DSAKeyPair

const keyPair = await dsaGenerateKeyPair(2048, { keyFormat: 'pem' })

dsaSign(plainText, privateKey, options?)

DSA 私钥签名。

参数 类型 必填 说明
plainText string 待签名内容
privateKey string 私钥
options.signAlgorithm DSASignAlgorithm 签名算法,默认 'SHA256withDSA'

可选签名算法SHA1withDSASHA256withDSA

返回值Promise<string> — Base64 编码的签名

const signature = await dsaSign('Hello World', keyPair.privateKey, {
  signAlgorithm: 'SHA256withDSA'
})

dsaVerify(plainText, signatureBase64, publicKey, options?)

DSA 公钥验签。

返回值Promise<boolean> — 验签是否通过

const isValid = await dsaVerify('Hello World', signature, keyPair.publicKey)

对称加密

⚠️ 鸿蒙平台仅支持 AES 算法,其他对称加密算法(ARCFOUR/Blowfish/DES/DESede/RC2)调用会抛出 SymmetricError(91304)

symmetricGenerateKey(algorithm, keySize?)

生成对称加密密钥。

参数 类型 必填 说明
algorithm SymmetricAlgorithm 算法名称
keySize number 密钥长度(位),默认按算法自动选择

支持算法AESARCFOURBlowfishDESDESedeRC2

密钥长度参考

算法 支持的密钥长度(位) 安全性
AES 128 / 192 / 256 ✅ 安全
ARCFOUR 40 - 2048 ⚠️ 不安全
Blowfish 32 - 448 ⚡ 谨慎使用
DES 56 ⚠️ 不安全
DESede 112 / 168 ⚡ 谨慎使用
RC2 40 - 128 ⚠️ 不安全

返回值Promise<string> — Base64 编码的密钥

const keyBase64 = await symmetricGenerateKey('AES', 256)

symmetricEncrypt(plainText, keyBase64, algorithm, options?)

对称加密。

参数 类型 必填 说明
plainText string 明文
keyBase64 string Base64 编码的密钥
algorithm SymmetricAlgorithm 算法名称
options.mode SymmetricMode 加密模式:'ECB'(默认)或 'CBC'
options.padding SymmetricPadding 填充:'PKCS5Padding'(默认)或 'NoPadding'
options.iv string CBC 模式必填,Base64 编码的 IV

返回值Promise<string> — Base64 编码的密文

// ECB 模式
const encrypted = await symmetricEncrypt('Hello', keyBase64, 'AES')

// CBC 模式
const encrypted2 = await symmetricEncrypt('Hello', keyBase64, 'AES', {
  mode: 'CBC',
  padding: 'PKCS5Padding',
  iv: ivBase64
})

symmetricDecrypt(cipherTextBase64, keyBase64, algorithm, options?)

对称解密,参数需与加密时一致。

返回值Promise<string> — 原文


PBE 密码加密

⚠️ PBE 仅支持 Android 平台,鸿蒙平台调用会抛出 SymmetricError(91306)

pbeEncrypt(plainText, password, algorithm, options?)

基于密码的加密。

参数 类型 必填 说明
plainText string 明文
password string 密码
algorithm PBEAlgorithm PBE 算法
options.salt string Base64 编码的盐值(8 字节),不提供则自动生成
options.iterationCount number 迭代次数,默认 1000

支持算法PBEWithMD5AndDESPBEWithSHA1AndDESede

返回值Promise<PBEEncryptResult>

const result = await pbeEncrypt('Hello World', 'myPassword', 'PBEWithMD5AndDES', {
  iterationCount: 1000
})
console.log(result.encrypted)      // Base64 密文
console.log(result.salt)           // Base64 盐值(解密时需要)
console.log(result.iterationCount) // 迭代次数

pbeDecrypt(cipherTextBase64, password, algorithm, options?)

PBE 解密。options.salt 为必填。

const decrypted = await pbeDecrypt(result.encrypted, 'myPassword', 'PBEWithMD5AndDES', {
  salt: result.salt,
  iterationCount: result.iterationCount
})

摘要算法

digest(plainText, algorithm, outputFormat?)

计算消息摘要。

参数 类型 必填 默认值 说明
plainText string - 原文
algorithm DigestAlgorithm - 摘要算法
outputFormat DigestOutputFormat 'hex' 输出格式:'hex''base64'

支持算法MD5SHA-1SHA-256SHA-384SHA-512

返回值Promise<string> — 摘要值

const hash = await digest('Hello World', 'SHA-256')
// 默认输出 hex 格式: "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b27718d2f5f5a0"

const hashBase64 = await digest('Hello World', 'SHA-256', 'base64')
// Base64 格式输出

HMAC 消息认证码

hmac(plainText, key, algorithm, outputFormat?)

计算 HMAC 值。

参数 类型 必填 默认值 说明
plainText string - 原文
key string - 密钥
algorithm HmacAlgorithm - HMAC 算法
outputFormat DigestOutputFormat 'hex' 输出格式

支持算法HmacMD5HmacSHA1HmacSHA256HmacSHA384HmacSHA512

返回值Promise<string> — HMAC 值

const hmacValue = await hmac('Hello World', 'mySecretKey', 'HmacSHA256')

耗时统计

startTime()

获取当前时间戳(毫秒),用于标记起始时间。

getElapsed(startMs)

计算耗时,返回耗时毫秒数字符串(不含单位)。

getElapsedMs(startMs)

计算耗时,返回耗时毫秒数(number 类型)。

import { startTime, getElapsed, getElapsedMs } from '@/uni_modules/dida2-crypto'

const t0 = startTime()
const result = await digest('Hello World', 'SHA-256')
const elapsed = '耗时: ' + getElapsed(t0) + ' ms'

// 或直接获取数值
const ms = getElapsedMs(t0)  // 15

平台检测

isHarmonyOS

boolean 常量,判断当前是否运行在鸿蒙平台。

  • Android 平台:false
  • 鸿蒙平台:true
import { isHarmonyOS } from '@/uni_modules/dida2-crypto'

if (isHarmonyOS) {
  // 鸿蒙平台特定逻辑
} else {
  // Android 平台逻辑
}

错误处理

插件使用统一的错误类,每个错误对象包含:

属性 类型 说明
message string 错误描述
code number 错误码
detail string 原始异常信息

RSA 错误(RSAError)

错误码 说明
91001 密钥格式无效,请确认密钥为有效的 Base64 或 PEM 编码
91002 加密失败,请核实公钥格式与填充模式是否匹配
91003 解密失败,请核实私钥格式与填充模式是否匹配
91004 待处理数据超出 RSA 单次加解密长度限制
91005 不支持的 RSA 算法(鸿蒙平台同步 API 也会抛出此错误码)
91006 密钥对生成失败
91007 签名失败,请核实私钥格式与签名算法是否匹配
91008 验签失败,请核实公钥格式与签名算法是否匹配

DSA 错误(DSAError)

错误码 说明
91101 密钥格式无效,请确认密钥为有效的 Base64 或 PEM 编码
91102 签名失败,请核实私钥格式与签名算法是否匹配
91103 验签失败,请核实公钥格式与签名算法是否匹配
91104 密钥对生成失败 / 鸿蒙平台不支持 DSA

摘要算法错误(DigestError)

错误码 说明
91201 摘要计算失败,请确认算法名称是否正确
91202 HMAC 计算失败,请核实密钥与算法是否匹配(鸿蒙平台同步 HMAC 也会抛出此错误码)
91203 不支持的摘要算法(鸿蒙平台同步摘要也会抛出此错误码)

对称加密错误(SymmetricError)

错误码 说明
91301 对称加密失败,请核实密钥格式与算法配置
91302 对称解密失败,请核实密钥格式与算法配置
91303 对称加密密钥生成失败(鸿蒙平台同步 API 也会抛出此错误码)
91304 不支持的对称加密算法(鸿蒙平台非 AES 算法也会抛出此错误码)
91305 CBC 模式要求提供初始化向量(IV)
91306 PBE 加密失败 / 鸿蒙平台不支持 PBE
91307 PBE 解密失败,请核实密码、盐值与算法配置
91308 PBE 解密要求提供盐值
import { encrypt } from '@/uni_modules/dida2-crypto'

try {
  const encrypted = await encrypt('Hello', publicKey)
} catch (e) {
  // e.message 为错误描述
  // e.code 为错误码
  // e.detail 为原始异常信息
  console.error(`Error ${e.code}: ${e.message}`)
}

典型用例

RSA 完整流程:密钥生成 → 加密 → 解密 → 签名 → 验签

import {
  generateKeyPair, encrypt, decrypt, sign, verify,
  startTime, getElapsed
} from '@/uni_modules/dida2-crypto'

// 1. 生成 RSA 2048 密钥对(PEM 格式)
const t0 = startTime()
const keyPair = await generateKeyPair(2048, { keyFormat: 'pem' })
console.log('耗时: ' + getElapsed(t0) + ' ms')

// 2. 公钥加密
const encrypted = await encrypt('Hello World', keyPair.publicKey)

// 3. 私钥解密
const decrypted = await decrypt(encrypted, keyPair.privateKey)
console.log(decrypted)  // "Hello World"

// 4. 私钥签名
const signature = await sign('Hello World', keyPair.privateKey, {
  signAlgorithm: 'SHA256withRSA'
})

// 5. 公钥验签
const isValid = await verify('Hello World', signature, keyPair.publicKey, {
  signAlgorithm: 'SHA256withRSA'
})
console.log(isValid)  // true

AES 对称加密(CBC 模式)

import {
  symmetricGenerateKey, symmetricEncrypt, symmetricDecrypt
} from '@/uni_modules/dida2-crypto'

// 1. 生成 AES-256 密钥
const keyBase64 = await symmetricGenerateKey('AES', 256)

// 2. 生成 IV(CBC 模式需要,AES 为 16 字节)
//    可使用 symmetricGenerateKey('AES', 128) 生成一个 16 字节的密钥作为 IV
const ivBase64 = await symmetricGenerateKey('AES', 128)

// 3. 加密
const encrypted = await symmetricEncrypt('Hello World', keyBase64, 'AES', {
  mode: 'CBC',
  padding: 'PKCS5Padding',
  iv: ivBase64
})

// 4. 解密
const decrypted = await symmetricDecrypt(encrypted, keyBase64, 'AES', {
  mode: 'CBC',
  padding: 'PKCS5Padding',
  iv: ivBase64
})

跨平台兼容写法

import {
  symmetricGenerateKey, symmetricEncrypt, symmetricDecrypt,
  isHarmonyOS
} from '@/uni_modules/dida2-crypto'

// 根据平台选择算法
const algorithm = isHarmonyOS ? 'AES' : 'Blowfish'
const keyBase64 = await symmetricGenerateKey(algorithm)

PBE 密码加密(仅 Android)

import { pbeEncrypt, pbeDecrypt } from '@/uni_modules/dida2-crypto'

// 加密(salt 不提供则自动生成)
const result = await pbeEncrypt('Sensitive Data', 'myPassword', 'PBEWithSHA1AndDESede', {
  iterationCount: 5000
})

// 解密(需要加密时返回的 salt 和 iterationCount)
const decrypted = await pbeDecrypt(result.encrypted, 'myPassword', 'PBEWithSHA1AndDESede', {
  salt: result.salt,
  iterationCount: result.iterationCount
})

DSA 签名验签(仅 Android)

import { dsaGenerateKeyPair, dsaSign, dsaVerify } from '@/uni_modules/dida2-crypto'

const keyPair = await dsaGenerateKeyPair(2048)
const signature = await dsaSign('Hello', keyPair.privateKey)
const isValid = await dsaVerify('Hello', signature, keyPair.publicKey)

摘要计算 + HMAC

import { digest, hmac } from '@/uni_modules/dida2-crypto'

// SHA-256 摘要(hex 格式)
const hash = await digest('Hello World', 'SHA-256')

// MD5 摘要(Base64 格式)
const md5 = await digest('Hello World', 'MD5', 'base64')

// HMAC-SHA256
const hmacValue = await hmac('Hello World', 'secretKey', 'HmacSHA256')

示例项目

本插件附带完整的测试示例项目,包含所有功能的交互式演示页面:

页面路径 功能 平台
pages/rsa-keygen/index.uvue RSA 密钥生成 Android / 鸿蒙
pages/rsa-encrypt/index.uvue RSA 加密 Android / 鸿蒙
pages/rsa-decrypt/index.uvue RSA 解密 Android / 鸿蒙
pages/rsa-sign/index.uvue RSA 签名 Android / 鸿蒙
pages/rsa-verify/index.uvue RSA 验签 Android / 鸿蒙
pages/dsa-keygen/index.uvue DSA 密钥生成 仅 Android
pages/dsa-sign/index.uvue DSA 签名 仅 Android
pages/dsa-verify/index.uvue DSA 验签 仅 Android
pages/symmetric/index.uvue 对称加密/解密 Android(全算法)/ 鸿蒙(仅 AES)
pages/pbe/index.uvue PBE 密码加密/解密 仅 Android
pages/digest/index.uvue 摘要计算 Android / 鸿蒙
pages/hmac/index.uvue HMAC 计算 Android / 鸿蒙

注意事项

  1. RSA 加密数据长度限制:明文长度不能超过密钥长度减去填充字节。PKCS1 填充最多加密 keySize/8 - 11 字节,OAEP 填充更少。建议对超长数据先做对称加密,再用 RSA 加密对称密钥。
  2. 对称加密 CBC 模式:必须提供 IV(初始化向量),AES 为 16 字节,DES/Blowfish/RC2 为 8 字节。
  3. PBE 解密:必须提供加密时返回的 saltiterationCount,否则无法解密。
  4. ARCFOUR:是流密码,不支持加密模式选择,也不需要填充。
  5. 密钥格式pkcs8 为 Base64 编码的 DER 数据,pem 为带 -----BEGIN ...----- 头尾的文本格式。加解密时密钥格式需与生成时一致。
  6. 性能:RSA 4096 密钥生成可能需要数秒,建议使用异步接口并在后台执行。
  7. 鸿蒙平台同步 API:HarmonyOS 的 cryptoFramework 仅支持异步调用,同步 API(如 encryptSyncdigestSync 等)在鸿蒙平台会抛出错误,请统一使用异步 API。
  8. 鸿蒙平台 NoPadding:AES NoPadding 模式下输入数据需为 16 字节的整数倍,插件会自动进行零填充,解密时自动去除尾部补零。如原始数据本身以 \0 结尾,可能会丢失尾部零字节,建议使用 PKCS5Padding/PKCS7 填充模式。

技术参考文档

隐私、权限声明

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

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

插件不采集任何数据。Android 平台使用系统内置 Java Crypto API,HarmonyOS 平台使用系统内置 cryptoFramework 进行本地加解密运算,不涉及任何网络请求和数据传输。

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

暂无用户评论。