javascript - 在 Javascript 中对图像进行哈希处理

标签 javascript html image hash

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

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

有谁知道我如何使用 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/

关于javascript - 在 Javascript 中对图像进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208640/

相关文章:

javascript - 我想将这个结果查询放入 3 x 3 html 表中

javascript - JavaScript 中有 "null coalescing"运算符吗?

ios - iOS 上的 HTML5 自定义相机 View

asp.net-mvc - 设计具有 HTML5 离线功能的移动 ASP.NET MVC 4 数据输入应用程序的正确方法

javascript - 我是否将对象传递给 object.defineProperties?

javascript - 使用 JavaScript 下载图像

html - 谷歌在我的表单中自动完成

java - 如何在Java中使用固定大小的 block 扫描图像?

ios - 如何在 ios sdk 中将 svg 图像设置为按钮图像?

css - 在 div 中居中背景图像