gpt4 book ai didi

javascript - 如何将十六进制字符串转换为 Uint8Array 并返回 JavaScript?

转载 作者:数据小太阳 更新时间:2023-10-29 04:36:15 35 4
gpt4 key购买 nike

我想将像 bada55 这样的十六进制字符串转换成 Uint8Array 然后再转换回来。

最佳答案

普通 JS:

const fromHexString = (hexString) =>
Uint8Array.from(hexString.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)));

const toHexString = (bytes) =>
bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');

console.log(toHexString(Uint8Array.from([0, 1, 2, 42, 100, 101, 102, 255])));
console.log(fromHexString('0001022a646566ff'));

注意:此方法信任其输入。如果提供的输入的长度为 0,则会抛出错误。如果十六进制编码缓冲区的长度不能被 2 整除,则最终字节将被解析为好像它前面加上了 0(例如 aaa 被解释为 aa0a).

如果十六进制可能格式错误或为空(例如用户输入),请在调用此方法之前检查其长度并处理错误,例如:

const isHex = (maybeHex) =>
maybeHex.length !== 0 && maybeHex.length % 2 === 0 && !/[^a-fA-F0-9]/u.test(maybeHex);

const missingLetter = 'abc';

if (!isHex(missingLetter)) {
console.log(`The string "${missingLetter}" is not valid hex.`)
} else {
fromHexString(missingLetter);
}

来源:Libauth库 ( hexToBin method )

关于javascript - 如何将十六进制字符串转换为 Uint8Array 并返回 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987784/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com