更新记录

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加解密的密钥

隐私、权限声明

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

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

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

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问