encodeTextByArrayBuffer【ArrayBuffer对象转化加密后的文本】
上次更新: 2025/07/01, 14:52:29
描述
主要是将文本通过 ArrayBuffer 对象转化加密后的文本 v3.3.2+
<template>
<div class="flex flex-col">
<div class="flex gap-8px">
<el-input placeholder="请输入要加密的文本" v-model="text" />
<el-button class="flex-none" :disabled="!text" @click="onEncode">点击加密</el-button>
</div>
<el-divider />
<div class="mt-4px max-h-400px overflow-y-auto">得到的加密文本:{{ encodeText }}</div>
</div>
</template>
<script>
import { encodeTextByArrayBuffer } from 'sf-utils2'
export default {
data() {
return {
text: '',
encodeText: ''
}
},
methods: {
async onEncode() {
this.encodeText = await encodeTextByArrayBuffer(this.text)
}
}
}
</script>
| 参数 | 说明 | 类型 | 是否必填 | 默认值 |
|---|---|---|---|---|
| text | 要加密的文本 | string | 是 |
import textToArrayBuffer from '@/stream/textToArrayBuffer.ts'
/**
* 将文本通过ArrayBuffer对象转化加密后的文本
* 本质上
* 1. 将文本序列化为ArrayBuffer对象
* 2、将ArrayBuffer对象转成Uint8Array
* 2、将Uint8Array对象序列化为JSON对象
* 3、将JSON对象进行base64转换
*/
async function encodeTextByArrayBuffer(text: string) {
if (!text) return ''
const arrayBuffer = await textToArrayBuffer(text)
const uint8Array = new Uint8Array(arrayBuffer)
return btoa(encodeURIComponent(JSON.stringify([...uint8Array])))
}
export default encodeTextByArrayBuffer