更新记录
0.2.1(2025-10-10)
- chore: 更新文档
 
0.2.0(2025-10-09)
- fix: 修复ios报错问题
 
0.1.9(2025-09-15)
- chore: 更新文档
 
平台兼容性
uni-app(4.44)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | 
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | 5.0 | √ | √ | 
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 | 
|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | - | - | 
uni-app x(4.61)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 | 
|---|---|---|---|---|---|
| √ | √ | 5.0 | √ | √ | √ | 
lime-crypto 加密
一个UTS版的cryptoJs加密库,支持MD5、SHA1、SHA256、SHA512、AES、DES等加密算法,兼容uniapp/uniappx(iOS、Web、Android、鸿蒙、小程序)。
功能概述
本模块提供以下加密功能:
- 哈希算法(MD5/SHA1/SHA256/SHA512)
 - HMAC-SHA256/HMAC-SHA1 签名
 - AES 对称加密(支持多种模式和填充方案)
 - DES 对称加密
 - RSA 非对称加密,密钥对生成(2048位
 - 多种编码格式转换(UTF8/Hex/Base64等)
 
文档链接
📚 组件详细文档请访问以下站点:
安装方法
- 在uni-app插件市场中搜索并导入
lime-crypto - 非源码APP需要自定义基座
 - 请先在页面上引入插件后再自定义基座
 
使用方法
import { useCrypto } from '@/uni_modules/lime-crypto'
const crypto = useCrypto()
使用示例
MD5哈希
// 计算字符串的MD5哈希值
const md5Hash = crypto.MD5('Hello World').toString()
console.log('MD5:', md5Hash)
// 输出: MD5: b10a8db164e0754105b7a99be72e3fe5
SHA256哈希
// 计算字符串的SHA256哈希值
const sha256Hash = crypto.SHA256('Hello World').toString()
console.log('SHA256:', sha256Hash)
// 输出: SHA256: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
HMAC-SHA256签名
// 使用密钥对消息进行HMAC-SHA256签名
const key = 'secret-key'
const message = 'Message to sign'
const hmacSig = crypto.HmacSHA256(message, key).toString()
console.log('HMAC-SHA256:', hmacSig)
AES加密/解密
// AES加密(CBC模式)
const key = 'my-secret-key-123'
const iv = crypto.enc.Utf8.parse(key.toString().substring(0, 16));
const plaintext = 'Secret message to encrypt'
// 加密
const encrypted = crypto.AES.encrypt(plaintext, key, {
  iv: iv,
  mode: crypto.mode.CBC,
  padding: crypto.pad.Pkcs7
})
const ciphertext = encrypted.toString()
console.log('加密结果:', ciphertext)
// 解密
const decrypted = crypto.AES.decrypt(ciphertext, key, {
  iv: iv,
  mode: crypto.mode.CBC,
  padding: crypto.pad.Pkcs7
})
const decryptedText = decrypted.toString(crypto.enc.Utf8)
console.log('解密结果:', decryptedText)
DES加密/解密
// DES加密
const key = 'password'
const plaintext = 'Message to encrypt'
const encrypted = crypto.DES.encrypt(plaintext, key).toString()
console.log('DES加密:', encrypted)
const decrypted = crypto.DES.decrypt(encrypted, key).toString(crypto.enc.Utf8)
console.log('DES解密:', decrypted)
RSA加密/解密
// 创建实例
const RSA = crypto.RSA
// 生成密钥对
const rsaKeys = RSA.generateKeyPair();
// 设置公钥
RSA.setPublicKey(rsaKeys.publicKey);
// 加密短数据
const shortData = 'Hello RSA';
const rsaEncrypted = RSA.encrypt(shortData);
console.log('加密结果:', rsaEncrypted);
// 设置私钥
RSA.setPrivateKey(rsaKeys.privateKey);
// 解密
const rsaDecrypted = RSA.decrypt(rsaEncrypted);
console.log('解密结果:', rsaDecrypted); // 应该输出 "Hello RSA"
编码器使用
// 字符串转换为不同编码格式
const text = 'Hello World'
const wordArray = crypto.enc.Utf8.parse(text)
// 转换为Base64
const base64 = crypto.enc.Base64.stringify(wordArray)
console.log('Base64:', base64) // SGVsbG8gV29ybGQ=
// 转换为Hex(16进制)
const hex = crypto.enc.Hex.stringify(wordArray)
console.log('Hex:', hex) // 48656c6c6f20576f726c64
// 从Base64解析回字符串
const parsedText = crypto.enc.Base64.parse(base64)
const originalText = parsedText.toString(crypto.enc.Utf8)
console.log('原文:', originalText) // Hello World
功能特点
哈希算法
- 支持MD5、SHA1、SHA256、SHA512等哈希算法
 - 支持HMAC-SHA256和HMAC-SHA1签名
 
AES加密/解密
- 支持多种加密模式:CBC、CFB、CTR、CTRGladman、ECB、OFB
 - 支持多种填充方式:Pkcs7、AnsiX923、Iso10126、Iso97971、NoPadding、ZeroPadding
 
DES加密/解密
- 与AES类似的API和使用方法
 
编码器
- 支持多种编码格式:Hex(16进制)、Base64、Base64url、Latin1、UTF8等
 - 支持字符串与WordArray的相互转换
 
AES 加密模式
| 模式名称 | 描述 | 注意事项 | 
|---|---|---|
| CBC | 密码块链模式,每个块依赖前一个块 | - 必须提供16字节IV - IV需唯一且随机  | 
| CFB | 将块密码转为流密码,支持逐字节加密 | - IV需随机且不可预测 - 错误传播影响后续数据  | 
| CTR | 计数器模式,支持并行计算 | - 计数器必须永不重复 - 需管理好nonce  | 
| CTRGladman | 优化的CTR模式实现 | - 非标准实现 - 可能与其他库不兼容  | 
| ECB | 简单块加密,相同明文生成相同密文 | - 不推荐正式使用 - 存在安全漏洞  | 
| OFB | 输出反馈模式,错误不传播 | - 需要完整IV - 加密解密需严格同步  | 
填充方式
| 填充名称 | 描述 | 注意事项 | 
|---|---|---|
| Pkcs7 | 填充字节值为填充长度(如缺3字节则填0x03) | - 最通用方案 - 数据长度需为块大小整数倍  | 
| AnsiX923 | 末尾为填充长度,中间填0 | - 部分旧系统不支持 | 
| Iso10126 | 末尾为填充长度,中间填随机值 | - 已过时标准 - 慎用  | 
| Iso97971 | 使用比特填充方案 | - 特殊位流场景专用 - 与其他库不兼容  | 
| NoPadding | 无填充,APP端字符必须为16的整倍数 | - 数据长度必须严格匹配块大小 | 
| ZeroPadding | 用0x00填充至块大小 | - 无法区分数据结尾和填充 - 可能跨平台不兼容  | 
常见问题
- iOS普通授权下无法使用,需要源码版才行
 - 鸿蒙Next普通授权下无法使用,需要源码版才行
 
支持与赞赏
| 如果你觉得本插件解决了你的问题,可以考虑支持作者: | 支付宝赞助 | 微信赞助 | 
|---|---|---|
![]()  | 
![]()  | 

                                                                    
                                                                        收藏人数:
                                    
                                                            购买源码授权版(
                                                                                                                试用
                                                    
                                        赞赏(0)
                                    

 下载 64396
                
 赞赏 474
                
            
                    下载 10684740 
                
                        赞赏 1797 
                    
            
            
            
            
            
            
            
            
            
            
            
            
            
            
                        
                                赞赏
                            
            
京公网安备:11010802035340号