Skip to content
# TuiCrypto 加密

TuiCrypto 是一个强大的加密解密工具集,为您的应用提供安全的密码学支持。支持对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA1、HmacSHA1、SHA256、HmacSHA256、SHA512、HmacSHA512、MD5、HmacMD5)以及消息认证码(如 HMAC)等多种主流算法,满足数据加密、身份验证和完整性校验等安全需求。

html
<template>
	<view class="p-15">
		<tui-theme-switch></tui-theme-switch>
		<t-card class='mb-15'
				title='TuiCrypto 加密解密工具集'
				sub-title="强大的加密解密工具集,为您的应用提供安全的密码学支持。支持对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA1、hmacSHA1、SHA256、hamcSHA256、、SHA512、hamcSHA512、MD5、hmacMd5)以及消息认证码(如 HMAC)等多种主流算法,满足数据加密、身份验证和完整性校验等安全需求。"></t-card>
		<t-card class='mb-15'
				type="error"
				title='亮点'
				sub-title="纯UTS编写,不需要原生依赖,不需要自定义基座"></t-card>
		<t-section class="mb-15"
				   title="信息展示"></t-section>
		<t-sticky class="w-345"
				  :scrollTop="scrollTop"
				  :stickyTop="0">
			<view class="tdr tdb h-100 tdp">
				<t-text class="w-100%">{{encinfo}}</t-text>
			</view>
		</t-sticky>
		<t-button type="primary"
				  class="mtb-15"
				  @click="encrypt">RSA加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="decrypt">RSA解密(请先加密在测试)</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="aesEncrypt">Aes加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="aesDecrypt">Aes解密(请先加密在测试)</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="md5">md5加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="sah1">sah1加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="sha256">sha256加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="sha512">sha512加密</t-button>
		<t-button type="primary"
				  class="mb-15"
				  @click="base64">base64编码解码</t-button>
	</view>
</template>

<script setup>
	import { TuiCrypto } from '@/uni_modules/tui-common'
	const publicKey = `-----BEGIN PUBLIC KEY-----
	MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAvZKge9Ii7KkS5WMx58Ba7/+Z
	wPWri9gkEaJdW3Z6Lj2KEpw+yGaXnh6I9EDREcBKemxFjyMcJJmjx5bi0xYzjOGa
	Tb19NY4c8pZEFsIR29C5YtHmAU56FbLTXQvdq24fHODqNKNKDz6+IXQPgOQqSnDC
	Et4Lq79GpSm/7C0HOQIDAQAB
	-----END PUBLIC KEY-----`
	const privateKey = `-----BEGIN RSA PRIVATE KEY-----
	MIICXAIBAAKBgQCAvZKge9Ii7KkS5WMx58Ba7/+ZwPWri9gkEaJdW3Z6Lj2KEpw+
	yGaXnh6I9EDREcBKemxFjyMcJJmjx5bi0xYzjOGaTb19NY4c8pZEFsIR29C5YtHm
	AU56FbLTXQvdq24fHODqNKNKDz6+IXQPgOQqSnDCEt4Lq79GpSm/7C0HOQIDAQAB
	AoGAGzb37hD+xP8+Zo4zP/N7yD1/zOLrjA4N7OIFbrLNAtsPi0aP3P3EIjz8u3rW
	0NttyNDEXpf5lhNunx6sGNsCkCocYRn8VI/Dw4lSRCscn5JO2jnXx4oe+fYlJfV2
	mLI1D2acG6Af2mwaGwD4Lg44RwuPkrxUyKp9Q2yRPt43pgECQQDHK+0Ik9F0FE3b
	nrDvXwp07sgKi4Tog9+adiBA6v/kNa9hpJbZA+IErnyzgTpuO/+c2i739XYhQiwg
	99WqkpbhAkEApXkn9co8/o84SSh6Z34IH7Ilz4jWzmNFRnE2oMGWsgMBDUB/VQ3S
	xf+ybHLLfmFCl5ZiZdQz1yzoqiyajN/zWQJAXhrWCwh0nWj+hHcNWHxKX4d2wuy6
	5nVwj/WiNaoTL8thyzvN/kmEX/vldZboea8ljgHU0VmL8Bjo6sbOkKJkYQJASK+z
	sfAoYtmeq+QwAI4IG4Qxv7woP3iz0YGhsXPYMlHHgH64cDAmSftL8P9sDBPFILla
	d8iDDR4ZBceaDA/D4QJBALqECNWcFuLz8RMdx4NJUjbikIvIR/CnXwAIoVhQh24P
	CUx+XrsweWK6llwlwDv1RUgElQkcje6drmFJEfBJ1WY=
	-----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>