为什么我的加密哈希在两个哈希之间跳跃?

时间:2015-12-07 21:23:14

标签: node.js hash

我得到了两个中的任何一个:

  • jQuery(document).on( 'click', '.button', function(e) { jQuery.ajax({ type : 'POST', url : custom.ajax_url, data : {'action':'some_ajax'}, success : function(data){ } }); } });
  • body ==> ef41c6e9a687de63acba3cd120737f18

怎么可能?我已尝试使用sha1并获得相同的结果(两个diff hash)。

body ==>  3f952f0ca3875f634206563187bcd06d

1 个答案:

答案 0 :(得分:1)

如果您正在下载这样的二进制数据,您应该知道默认情况下request会将响应转换为(utf8)字符串。因此,在转换过程中图像数据可能会受损。

要解决该特定问题,您可以通过在请求配置中明确设置request来强制Buffer将响应保持为encoding: null。例如:

request.get({
  url: invalid,
  encoding: null
}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    checksum(body);
  }
});

// ...

function checksum(buf) {
  console.log("body ==> ", crypto
    .createHash('md5')
    .update(buf)
    .digest('hex')
  );
}