【问题标题】:How to convert Buffer array to hex?如何将缓冲区数组转换为十六进制?
【发布时间】:2016-03-14 22:13:58
【问题描述】:

当我调用我的 API 端点之一时,我在 JSON 对象中返回了一个 Buffer 数组。我想将此数组转换为更“可用”的形式(十六进制?),以便我可以比较它们等。这是对象当前的样子:

"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
  ]
}

如何将此数组转换为十六进制(或字符串等),以便比较哈希值?

【问题讨论】:

    标签: javascript arrays node.js arraybuffer


    【解决方案1】:

    如果您有一个现有的 Buffer 对象,您可以通过以下方式将其表示为十六进制:

    myBuffer.toString('hex')
    // '970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c'
    

    【讨论】:

      【解决方案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
      

      【讨论】:

        【解决方案3】:

        使用Number.prototype.toString:

        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)); });

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-30
          • 2012-02-20
          • 2019-11-26
          • 2016-07-26
          • 1970-01-01
          • 2016-10-15
          • 1970-01-01
          相关资源
          最近更新 更多