TuiCrypto 加密
TuiCrypto 是一个强大的加密解密工具集,为您的应用提供安全的密码学支持。支持对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA1、HmacSHA1、SHA256、HmacSHA256、SHA512、HmacSHA512、MD5、HmacMD5)以及消息认证码(如 HMAC)等多种主流算法,满足数据加密、身份验证和完整性校验等安全需求。
html
<template>
<t-page main-class="p-30">
<t-card main-class='mb-30' title='TuiCrypto 加密解密工具集'
sub-title="强大的加密解密工具集,为您的应用提供安全的密码学支持。支持对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA1、hmacSHA1、SHA256、hamcSHA256、、SHA512、hamcSHA512、MD5、hmacMd5)以及消息认证码(如 HMAC)等多种主流算法,满足数据加密、身份验证和完整性校验等安全需求。"></t-card>
<t-card main-class='mb-30' type="error" title='亮点' sub-title="纯UTS编写,不需要原生依赖,不需要自定义基座"></t-card>
<t-section main-class="mb-30" title="信息展示"></t-section>
<t-sticky main-class="w-690" :scrollTop="scrollTop" :stickyTop="0">
<t-view main-class="tdr tdb h-200 tdp">
<t-text main-class="w-100%">{{encinfo}}</t-text>
</t-view>
</t-sticky>
<t-button type="primary" main-class="mtb-30" @click="encrypt">RSA加密</t-button>
<t-button type="primary" main-class="mb-30" @click="decrypt">RSA解密(请先加密在测试)</t-button>
<t-button type="primary" main-class="mb-30" @click="aesEncrypt">Aes加密</t-button>
<t-button type="primary" main-class="mb-30" @click="aesDecrypt">Aes解密(请先加密在测试)</t-button>
<t-button type="primary" main-class="mb-30" @click="md5">md5加密</t-button>
<t-button type="primary" main-class="mb-30" @click="sah1">sah1加密</t-button>
<t-button type="primary" main-class="mb-30" @click="sha256">sha256加密</t-button>
<t-button type="primary" main-class="mb-30" @click="sha512">sha512加密</t-button>
<t-button type="primary" main-class="mb-30" @click="base64">base64编码解码</t-button>
</t-page>
</template>
<script setup>
import { TuiPmStyle, TuiCrypto } from '@/uni_modules/tui-plugins'
const publicKey = `-----BEGIN PUBLIC KEY-----...
-----END PUBLIC KEY-----`
const privateKey = `-----BEGIN RSA PRIVATE KEY-----...
-----END RSA PRIVATE KEY-----`
const rsa = TuiCrypto.rsa
const scrollTop = ref<number>(0)
const encinfo = ref('')
const key = '1234567890123456'; // 16 bytes key for AES-128, 32 bytes for AES-256 etc.
const iv = '1234567890123456'; // 16 bytes IV for AES-128, 32 bytes for AES-256 etc.
const text = '中文测试Hello, World!'; // 待加密的数据
let stext = ''
function encrypt() {
const originData = '我是加密的文本';
rsa.setPublicKey(publicKey)
encinfo.value = rsa.encryptAsync(originData)
}
function decrypt() {
rsa.setPrivateKey(privateKey)
encinfo.value = `Rsa解密信息:${rsa.decryptAsync(encinfo.value)}`
}
function aesEncrypt() {
stext = TuiCrypto.aes.encrypt(text, key, { iv })
encinfo.value = `Aes加密信息:${stext}`
}
function aesDecrypt() {
const atext = TuiCrypto.aes.decrypt(stext, key, { iv })
encinfo.value = `Aes解密信息:${atext}`
}
function md5() {
const a = TuiCrypto.sha.md5(text)
const b = TuiCrypto.sha.HmacMD5(a, iv)
encinfo.value = `MD5:${a}\r\nHmacMD5:${b}`
}
function sah1() {
const a = TuiCrypto.sha.sha1(text)
const b = TuiCrypto.sha.HmacSHA1(a, iv)
encinfo.value = `sha1:${a}\r\nHmacSHA1:${b}`
}
function sha256() {
const a = TuiCrypto.sha.sha256(text)
const b = TuiCrypto.sha.HmacSHA256(a, iv)
encinfo.value = `sha256:${a}\r\HmacSHA256:${b}`
}
function sha512() {
const a = TuiCrypto.sha.sha512(text)
const b = TuiCrypto.sha.HmacSHA512(a, iv)
encinfo.value = `sha512:${a}\r\HmacSHA512:${b}`
}
function base64() {
encinfo.value = TuiCrypto.base64.encrypt(text)
console.log(TuiCrypto.base64.decrypt(encinfo.value))
}
onPageScroll((e : OnPageScrollOptions) => {
scrollTop.value = e.scrollTop
})
</script>