僅做筆記用:base64字串轉換為十六進位制形式表示的二進位制資料

wujiuqier發表於2024-07-07

使用 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
*/

相關文章