更新记录
1.0.0(2025-02-08)
- 对称加密(双向加密)AES算法加密和解密
- 哈希加密(单向加密)MD5加密 SHA1加密 SHA256加密 SHA384加密 SHA512加密
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
Android:4.4,iOS:不支持,HarmonyNext:不支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
wui-crypto
插件介绍
- 本插件无第三方依赖,所以标准基座即可运行,安卓端调用的是java相关的库
- wui-crypto加解密插件支持:哈希单向加密 和 对称双向加密
- 哈希单向加密支持 MD5,SHA1,SHA256,SHA384,SHA512
- 对称双向加密支持 AES因为它的算法特点,安全性高,效率高,灵活性好
- AES应用场景 网络通信安全 数据存储加密 移动设备安全 物联网等
- 本插件AES对称双向加密支持单密钥和双密钥具体使用请看下面插件使用章节
插件使用
/* 引入wui-crypto加密插件 */
import { crypto } from '@/uni_modules/wui-crypto';
export default {
data(){},
onReady(){
//MD5单向加密
let stringMD5 = crypto.MD5('123456789');
console.log(stringMD5);
//SHA1单向加密
let stringSHA1 = crypto.SHA1('123456789');
console.log(stringSHA1);
//SHA256单向加密
let stringSHA256 = crypto.SHA256('123456789');
console.log(stringSHA256);
//SHA384单向加密
let stringSHA384 = crypto.SHA384('123456789');
console.log(stringSHA384);
//SHA512单向加密
let stringSHA512 = crypto.SHA512('123456789');
console.log(stringSHA512);
//AES对称双向加密
let datast = "Hello! AES";
//生成单密钥
let key = crypto.generaSecretKey();
//加密data
let databz = crypto.encryAES(datast,key);
console.log(databz);
//解密data
let dataDe = crypto.decryAES(databz,key);
console.log(dataDe);
//生成密钥对
let KeyPair = crypto.generaKeyPair();
//获取私钥
let private = KeyPair.private;
//获取公钥
let public = KeyPair.public;
//生成共享密钥
let generate = crypto.generateSharedSecret(private,public);
// 加密
let dataGenerate = crypto.encryAES(datast,generate);
// 解密
let dataDecry = crypto.decryAES(dataGenerate,generate);
console.log(dataDecry);
}
}
密钥储存和加密内容存储简要说明
- 在特定的场景下可能要对密钥或者加密后的内容进行云存储或者本地存储时就设计到了数据转换
- crypto对象下包括了数据转换的内置方法可供使用
- 单密钥SecretKey转base64可使用 crypto.secretKeytoBase64方法进行转换
- 单密钥base64逆向转换SecretKey可使用crypto.base64toSecretKey方法进行转换
- base64转ByteArray字节数组可使用crypto.base64toByteArray方法进行转换
- ByteArray字节数组转base64可使用crypto.byteArraytoBase64方法进行转换
以下时crypto对象下的内置的所有方法介绍
方法名称 | 返回值 | 参数说明 |
---|---|---|
MD5( input : string, radix : number = 16 ) : string | 返回MD5加密后的string内容 | 必须参数input需加密内容,可选参数radix加密长度默认16 |
SHA1( input : string, radix : number = 16 ) : string | 返回SHA1加密后的string内容 | 必须参数input需加密内容,可选参数radix加密长度默认16 |
SHA256( input : string, radix : number = 16 ) : string | 返回SHA256加密后的string内容 | 必须参数input需加密内容,可选参数radix加密长度默认16 |
SHA384( input : string, radix : number = 16 ) : string | 返回SHA384加密后的string内容 | 必须参数input需加密内容,可选参数radix加密长度默认16 |
SHA512( input : string, radix : number = 16 ) : string | 返回SHA512加密后的string内容 | 必须参数input需加密内容,可选参数radix加密长度默认16 |
generaSecretKey( param0 : number = 128 ) : SecretKey | 返回生成的单密钥SecretKey内容 | 可选参数param0密钥长度默认128,可选128位192位和256位 |
generaKeyPair( ) : KeyPair | 返回 生成的密钥对KeyPair内容 | 无参数,私钥KeyPair.private,公钥KeyPair.public |
generateSharedSecret(privateKey : PrivateKey, publicKey : PublicKey) : SecretKey | 返回 密钥对转换的共享密钥SecretKey内容 | 必须参数 privateKey私钥,必须参数PublicKey公钥 |
secretKeytoBase64( key : SecretKey ) : string | 返回 SecretKey密钥转Base64的内容 | 必须参数 需转换的SecretKey密钥内容 |
base64toSecretKey( base64Key : string ) : SecretKey | 返回 Base64转SecretKey密钥的内容 | 必须参数 需转换的Base64密钥内容 |
base64toByteArray( base64 : string ) : ByteArray | 返回 Base64转ByteArray字节数组的内容 | 必须参数 需转换的Base64的内容 |
byteArraytoBase64( byteArray : ByteArray ) : string | 返回 ByteArray字节数组转Base64的内容 | 必须参数 需转换的ByteArray字节数组内容 |
privateKeytoBase64( privateKey : PrivateKey ) : string | 返回 PrivateKey私钥转Base64的内容 | 必须参数 需转换的PrivateKey私钥内容 |
publicKeytoBase64( publicKey : PublicKey ) : string | 返回 PublicKey公钥转Base64的内容 | 必须参数 需转换的PublicKey公钥内容 |
base64toPrivateKey( privateKeyBase64 : string ):PrivateKey | 返回 Base64私钥转PrivateKey私钥内容 | 必须参数 需转换的Base64私钥内容 |
base64toPublicKey( publicKeyBase64 : string ) : PublicKey | 返回 Base64公钥转PublicKey公钥内容 | 必须参数 需转换的Base64公钥内容 |
encryAES(input : string, secretKey : SecretKey) : string | 返回AES加密后的string内容 | 必须参数input需加密内容,必须参数secretKey加解密的密钥 |
decryAES(input : string, secretKey : SecretKey) : string | 返回AES解密后的string内容 | 必须参数input需解密内容,必须参数secretKey加解密的密钥 |