如何将缓冲区数组转换为十六进制?
How to convert Buffer array to hex?
当我调用我的 API 端点之一时,我在 JSON 对象中得到了一个缓冲区数组。我想将此数组转换为更 "usable" 的形式(十六进制?),以便我可以比较它们等。这是对象当前的样子:
"hash": {
"type": "Buffer",
"data": [
151,
14,
51,
26,
46,
52,
5,
151,
99,
107,
38,
188,
138,
180,
76,
56,
108,
214,
135,
213,
125,
134,
105,
139,
129,
236,
206,
157,
67,
1,
12,
12
]
}
我如何将此数组转换为十六进制(或字符串等)以便我可以比较哈希值?
var json = '{"hash": {"type": "Buffer","data": [151,14,51]}}';
var parsed = JSON.parse(json);
document.write("data: " + JSON.stringify(parsed.hash.data) + "<br>");
document.write("hex: ");
parsed.hash.data.forEach(function(b) { document.write(("00" + b.toString(16)).substr(-2)); });
您可以创建一个新的 buffer 并将其转换为您需要的格式。
var o = {"hash": {
"type": "Buffer",
"data": [
151,
14,
51,
26,
46,
52,
5,
151,
99,
107,
38,
188,
138,
180,
76,
56,
108,
214,
135,
213,
125,
134,
105,
139,
129,
236,
206,
157,
67,
1,
12,
12
]
}
}
console.log(new Buffer(o.hash,'hex').toString('hex'));
// 970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c
如果您有一个现有的 Buffer 对象,您可以通过以下方式将其表示为十六进制:
myBuffer.toString('hex')
// '970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c'
当我调用我的 API 端点之一时,我在 JSON 对象中得到了一个缓冲区数组。我想将此数组转换为更 "usable" 的形式(十六进制?),以便我可以比较它们等。这是对象当前的样子:
"hash": {
"type": "Buffer",
"data": [
151,
14,
51,
26,
46,
52,
5,
151,
99,
107,
38,
188,
138,
180,
76,
56,
108,
214,
135,
213,
125,
134,
105,
139,
129,
236,
206,
157,
67,
1,
12,
12
]
}
我如何将此数组转换为十六进制(或字符串等)以便我可以比较哈希值?
var json = '{"hash": {"type": "Buffer","data": [151,14,51]}}';
var parsed = JSON.parse(json);
document.write("data: " + JSON.stringify(parsed.hash.data) + "<br>");
document.write("hex: ");
parsed.hash.data.forEach(function(b) { document.write(("00" + b.toString(16)).substr(-2)); });
您可以创建一个新的 buffer 并将其转换为您需要的格式。
var o = {"hash": {
"type": "Buffer",
"data": [
151,
14,
51,
26,
46,
52,
5,
151,
99,
107,
38,
188,
138,
180,
76,
56,
108,
214,
135,
213,
125,
134,
105,
139,
129,
236,
206,
157,
67,
1,
12,
12
]
}
}
console.log(new Buffer(o.hash,'hex').toString('hex'));
// 970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c
如果您有一个现有的 Buffer 对象,您可以通过以下方式将其表示为十六进制:
myBuffer.toString('hex')
// '970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c'