在Javascript中散列图像

时间:2013-03-04 18:38:53

标签: javascript html image hash

我目前一直在尝试使用javascript来浏览浏览器中的图片。但是,我一直在哈希一行dataURL或我从HTML中的canvas元素检索的像素数据。这显然与散列图像的原始数据不同,这是我想要做的。

例如,将在php哈希文件函数中用于相同图像的数据。

有没有人知道我如何使用javascript访问这个原始图像数据来获得一个哈希值,该哈希值等同于我从PHP hash_file($ file)得到的结果哈希值?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用XHR请求获取图像的原始数据到该图像文件位置。

var xhr = new XMLHttpRequest();
xhr.open('GET', '/my/image/file.png', true);
xhr.responseType = 'arraybuffer'; // this will accept the response as an ArrayBuffer
xhr.onload = function(buffer) {
    var words = new Uint32Array(buffer),
        hex = '';
    for (var i = 0; i < words.length; i++) {
      hex += words.get(i).toString(16);  // this will convert it to a 4byte hex string
    }
    console.log(hex);
};
xhr.send();

之后,您可以使用您想要的任何散列算法。这是他们的库:https://code.google.com/p/crypto-js/