Javascript 使用CryptoJS计算图像的MD5或SHA
我有一个要求,我需要计算图像的散列并将其上传到Web服务。使用Cordova API捕获图像,该API返回该图像的URI 我检查了CryptoJS,但它使用字符串作为输入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
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创造的麻烦就越多