仅做笔记用:base64字符串转换为十六进制形式表示的二进制数据
使用 JavaScript 实现一个函数,参数是一个 base64 的字符串,将这个字符串解析成二进制数据,并将这个二进制数据的每个字节以一个十六进制两位数表示出来,每个字节的十六进制两位数之间空一格,每行 16 个字节,返回整理好的十六进制形式。
function base64ToHex(base64Str) {
// 解析 base64 字符串为 Uint8Array 类型的二进制数据
const binaryData = Uint8Array.from(atob(base64Str), c => c.charCodeAt(0));
// 将每个字节转换为十六进制格式
let hexData = '';
for (let i = 0; i < binaryData.length; i++) {
hexData += binaryData[i].toString(16).padStart(2, '0') + ' ';
if ((i + 1) % 16 === 0) {
hexData += '\n';
}
}
return hexData.trim();
}
/*
输入:eJwFwc8NwWAAh+H3pz6VVpRKI5T4EyQicekBLRdCwjCkQ2hXEAdLuDmYgzks4Hl+BUvWmdIexIwnZRe9UQV5qIXGqI4s5KMaaqAVmqAXTht18Qo4S+Y9tJZZMN1ICZMYhYyONC90UoJIQZ/qAA3xr7IzubmKX8wH+4Z5YO6UtjI7meqQJQtSEk5kOnChR0hMpFz8/hq+FNg=
输出:
78 9c 05 c1 cf 0d c1 60 00 87 e1 f7 a7 3e 95 56
94 4a 23 94 f8 13 24 22 71 e9 01 2d 17 42 c2 30
a4 43 68 57 10 07 4b b8 39 98 83 39 2c e0 79 7e
05 4b d6 99 d2 1e c4 8c 27 65 17 bd 51 05 79 a8
85 c6 a8 8e 2c e4 a3 1a 6a a0 15 9a a0 17 4e 1b
75 f1 0a 38 4b e6 3d b4 96 59 30 dd 48 09 93 18
85 8c 8e 34 2f 74 52 82 48 41 9f ea 00 0d f1 af
b2 33 b9 b9 8a 5f cc 07 fb 86 79 60 ee 94 b6 32
3b 99 ea 90 25 0b 52 12 4e 64 3a 70 a1 47 48 4c
a4 5c fc fe 1a be 14 d8
可能是zlib压缩后的数据,使用Nodejs zlib解压出来之后的结果:
f3 02 03 01 03 6e 00 06 45 00 00 01 00 2b 00 b3
00 08 0b 00 01 be 00 01 0c 00 01 0f 00 01 19 00
01 25 00 01 11 00 01 03 00 01 12 00 01 10 00 01
13 00 01 39 00 01 26 00 01 ba 00 0a 1a 00 01 1d
00 0f 02 00 0a 38 00 2e 1f 00 01 3c 01 05 37 00
29 3d 01 01 3b 00 26 3a 00 01 1b 00 24 49 00 17
6f 00 1c 71 00 15 33 01 15 20 00 0e 21 00 01 22
00 12 85 01 07 86 01 0b 87 01 04 d9 00 05 d8 00
07 98 00 05 9e 00 05 9a 00 06 42 01 05 43 01 05
0e 22 00 38 00 37 00 71 00 3b 00 4a 00 86 01 46
00 6f 00 1f 00 1b 00 3a 00 33 01 87 01 00 f3
*/