我目前一直在尝试使用javascript从我的浏览器中散列图像.但是,我一直在哈希一行dataURL或我从HTML中的canvas元素检索的像素数据.这显然与散列图像的原始数据不同,这是我想要做的.
有没有人知道我如何使用javascript访问这个原始图像数据来获得一个哈希值,该值等于我从PHP hash_file($file)得到的结果哈希值?
谢谢!
最佳答案
您可以使用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/