使用 JavaScript 处理 UTF-8 文本字符串或任意数据的 Base64 编解码
// 引入相关模块
const { TextEncoder, TextDecoder } = require('util');
const { createHash } = require('crypto');
// 将字符串转换为 UTF-8 编码的数据
function stringToUtf8Array(str) {
const encoder = new TextEncoder(); // 创建文本编码器
return encoder.encode(str); // 将字符串编码为UTF-8编码单元的数组
}
// 将 UTF-8 编码数据转换为字符串
function utf8ArrayToString(utf8) {
const decoder = new TextDecoder(); // 创建文本解码器
return decoder.decode(utf8); // 将UTF-8编码单元数组解码为字符串
}
// 对数据进行Base64编码
function base64Encode(data) {
return Buffer.from(data).toString('base64'); // 使用Buffer对象转换为Base64字符串
}
// 对Base64字符串进行解码
function base64Decode(str) {
return Buffer.from(str, 'base64'); // 使用Buffer对象从Base64字符串解码回原始数据
}
// 使用SHA-256算法计算Base64编码数据的哈希值
function hashData(data) {
const hash = createHash('sha256'); // 创建SHA-256哈希对象
hash.update(data); // 更新哈希对象的数据
return hash.digest('base64'); // 生成哈希值并以Base64字符串形式返回
}
// 示例使用
const exampleString = "Hello, World!";
const utf8Data = stringToUtf8Array(exampleString);
const base64Encoded = base64Encode(utf8Data);
const base64Decoded = base64Decode(base64Encoded);
const hashedValue = hashData(base64Decoded);
console.log('Original String:', exampleString);
console.log('UTF-8 Array:', utf8Data);
console.log('Base64 Encoded:', base64Encoded);
console.log('Base64 Decoded:', utf8ArrayToString(base64Decoded));
console.log('Hashed Value:', hashedValue);
这段代码展示了如何在JavaScript中处理文本字符串的UTF-8编码、Base64编码以及数据的哈希计算。它首先将字符串转换为UTF-8编码的数组,然后将该数组编码为Base64字符串,并对其进行哈希处理。最后,它提供了相应的解码和反哈希过程,以便可以将Base64字符串转换回原始数据并验证哈希值。
评论已关闭