Cryptography

字節數組到十六 進制並在 JavaScript 中再次返回

  • April 26, 2019

我可以生成一個字節數組

var myByteArray = window.crypto.getRandomValues(new Uint8Array(16))

我得到

181,143,16,173,231,56,63,149,181,185,224,124,84,230,123,36

然後我可以把它變成一個字元串

cryptoHelpers.convertByteArrayToString(myByteArray);

我明白了

µ­ç8?µ¹à|Tæ{$

但我真正想要的是一個 128 位的十六進制…

6a3e52297b2e593f4d506f7164

我希望能夠從十六進制返回到字節數組。

是否有複製和粘貼功能或庫來使這種神奇發生?

這是您可以複製粘貼的內容。

byteArray = new Uint8Array([181,143,16,173,231,56,63,149,181,185,224,124,84,230,123,36]);
function toHexString(byteArray) {
 return Array.prototype.map.call(byteArray, function(byte) {
   return ('0' + (byte & 0xFF).toString(16)).slice(-2);
 }).join('');
}
function toByteArray(hexString) {
 var result = [];
 for (var i = 0; i < hexString.length; i += 2) {
   result.push(parseInt(hexString.substr(i, 2), 16));
 }
 return result;
}
hexString = toHexString(byteArray);
byteArray = toByteArray(hexString);

這裡/這裡

引用自:https://bitcoin.stackexchange.com/questions/52727