使用 bitcoinjs-min.js 从字节数组转换为十六进制格式
Conversion from Byte Array to hex format using bitcoinjs-min.js
我正在尝试从浏览器中对象 Q 的以下 x 和 y 生成 public 键。问题是为了使用此 public 密钥来验证 JWT,我必须获取密钥的十六进制格式。我正在使用 src="bitcoinjs.min.js" 中的密钥对,它不允许我检索 public 密钥的十六进制形式。
是否有任何库或函数可以将其转换为十六进制形式?
// Taking reference from http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript
var pubX = hdnode.keyPair.Q.x.toByteArrayUnsigned();
var pubY = hdnode.keyPair.Q.y.toByteArrayUnsigned();
var publicKeyBytes = pubX.concat(pubY);
publicKeyBytes.unshift(0x04);
同时我尝试了
<script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"></script>
var publicKeyInt = BigInt.fromByteArrayUnsigned(publicKeyBytes);
但它不起作用
提前致谢
好的,所以我要扩展我的评论
假设:键是一个数组或字节的可迭代
function getHexArray(key) {
function num2hex(num) {
return num > 9 ? num + 55 : num + 48;
}
var hex_key = [];
var lower, upper;
for (var i = 0; i < key.length; i++) {
lower = key[i] & 0x0f;
upper = key[i] >> 4;
return String.fromCharCode(num2hex(upper)) +
String.fromCharCode(num2hex(lower));
}
return hex_key;
}
注意,如果你想要一长串十六进制,你可能想要颠倒上下顺序(这是为了写成一个十六进制字节数组)
此函数允许您放入一个字节数组,并将输出一个表示字节十六进制值的 2 字符字符串数组。
正在工作:
下面是一段工作代码,它接受一个字节数组并给出一个十六进制字符串。
function toHexString(bytes) {
return bytes.map(function(byte) {
return (byte & 0xFF).toString(16)
}).join('')
}
感谢@derekdreery 的帮助:)
我正在尝试从浏览器中对象 Q 的以下 x 和 y 生成 public 键。问题是为了使用此 public 密钥来验证 JWT,我必须获取密钥的十六进制格式。我正在使用 src="bitcoinjs.min.js" 中的密钥对,它不允许我检索 public 密钥的十六进制形式。 是否有任何库或函数可以将其转换为十六进制形式?
// Taking reference from http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript
var pubX = hdnode.keyPair.Q.x.toByteArrayUnsigned();
var pubY = hdnode.keyPair.Q.y.toByteArrayUnsigned();
var publicKeyBytes = pubX.concat(pubY);
publicKeyBytes.unshift(0x04);
同时我尝试了
<script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"></script>
var publicKeyInt = BigInt.fromByteArrayUnsigned(publicKeyBytes);
但它不起作用 提前致谢
好的,所以我要扩展我的评论
假设:键是一个数组或字节的可迭代
function getHexArray(key) {
function num2hex(num) {
return num > 9 ? num + 55 : num + 48;
}
var hex_key = [];
var lower, upper;
for (var i = 0; i < key.length; i++) {
lower = key[i] & 0x0f;
upper = key[i] >> 4;
return String.fromCharCode(num2hex(upper)) +
String.fromCharCode(num2hex(lower));
}
return hex_key;
}
注意,如果你想要一长串十六进制,你可能想要颠倒上下顺序(这是为了写成一个十六进制字节数组)
此函数允许您放入一个字节数组,并将输出一个表示字节十六进制值的 2 字符字符串数组。
正在工作: 下面是一段工作代码,它接受一个字节数组并给出一个十六进制字符串。
function toHexString(bytes) {
return bytes.map(function(byte) {
return (byte & 0xFF).toString(16)
}).join('')
}
感谢@derekdreery 的帮助:)