Javascript 使用CryptoJS计算图像的MD5或SHA

Javascript 使用CryptoJS计算图像的MD5或SHA,javascript,cordova,md5,sha,Javascript,Cordova,Md5,Sha,我有一个要求,我需要计算图像的散列并将其上传到Web服务。使用Cordova API捕获图像,该API返回该图像的URI 我检查了CryptoJS,但它使用字符串作为输入 var hash = CryptoJS.MD5("Message"); 有没有办法计算图像的哈希值 CryptoJS库: 任何其他库也可以,只要它可以从Cordova应用程序使用 使用Cordova API可以获得Base64编码图像,而不是URI。您可以使用CryptoJS轻松地对其进行散列 调用getPictureAPI

我有一个要求,我需要计算图像的散列并将其上传到Web服务。使用Cordova API捕获图像,该API返回该图像的URI

我检查了CryptoJS,但它使用字符串作为输入

var hash = CryptoJS.MD5("Message");
有没有办法计算图像的哈希值

CryptoJS库:


任何其他库也可以,只要它可以从Cordova应用程序使用

使用
Cordova API
可以获得
Base64
编码图像,而不是URI。您可以使用
CryptoJS
轻松地对其进行散列

调用
getPicture
API时,使用
DATA\u URL
选项获取Base64编码图像,结果如下:

navigator.camera.getPicture(onSuccess, onFail, {
    destinationType: Camera.DestinationType.DATA_URL }); 
这将返回
onSuccess
方法中的base64编码图像作为参数:

function onSuccess(imageURI) {
    var hash = CryptoJS.MD5(imageURI);
}

以下是我用HTML生成图像文件MD5的方法:

函数onflechange(e){
const readerBuffer=new FileReader()
readerBuffer.readAsBinaryString(e.target.files[0])
readerBuffer.onloadend=函数(e){
const hash=CryptoJS.MD5(CryptoJS.enc.Latin1.parse(e.target.result))
const content-md5=hash.toString(CryptoJS.enc.Base64)
}
}
  • 需要以二进制格式读取图像
  • 阅读之后,我发现我们需要
    使用拉丁语-1将字符串转换为字节。

  • 这个结果可以被AWS作为content-md5使用。

    Yaa我知道,但当我将其上传到Amazon S3时,我需要的是URI而不是base64。我正在使用destinationType:Camera.destinationType.FILE\u URI在本例中使用
    文件URI
    您可能需要cordova
    文件
    插件,并使用URI读取文件并对其内容进行散列。是的,这正是我所想的。如果有其他方法的话,我正在寻找。因为你知道你使用的插件越多,Cordova创造的麻烦就越多