2013-12-17 6 views
4

BLOB의 MD5 해시를 계산하고 다른 해시를 확인하여 변경되었는지 확인하려면 어떻게해야합니까?BLOB의 MD5 해시 계산

편집 : 현재 당신은 비교를 위해 BLOB의 내용을 얻을 수있는 FileReader API를 사용할 수 있습니다 CryptoJS

답변

4

을 사용하고 있습니다. readAsBinaryString가되지 않습니다

var a = new FileReader(); 
a.readAsBinaryString(blob); 
a.onloadend = function() { 
    console.log(CryptoJS.MD5(CryptoJS.enc.Latin1.parse(a.result))); 
}; 

하는 것으로, 그래서 당신은 SparkMD5 같은 다른 라이브러리를 사용할 수 있다면, 당신은 배열 버퍼를 대신 사용할 수 있습니다 : 당신이 이것에 대한 CryptoJS를 사용하는 경우, 당신은 readAsBinaryString을 사용할 수 있습니다 :

var a = new FileReader(); 
a.readAsArrayBuffer(blob); 
a.onloadend = function() { 
    console.log(SparkMD5.ArrayBuffer.hash(a.result)); 
}; 
+0

MD5는이 방법으로는 올바르지 않습니다. –

+0

@ RaymondWu : 당신이 맞는 것 같아서 답을 고쳤습니다. 감사! –

+0

readAsBinaryString 또는 readAsArrayBuffer 호출 전에 onloadend 메서드를 정의해야합니다. 그렇지 않으면 버퍼가 충분히 작 으면 이벤트가 트리거 된 후 onloadend 이벤트 처리기가 등록됩니다. – Thierry