我試圖在使用md5sum linux命令和CryptoJS的MD5方法時獲取tar文件的md5sum以產生相同的值。通過Crypto.js獲取文件的md5sum
在JavaScript怎麼辦?(文件已經放在HTML表單後):
var reader = new FileReader();
reader.onloadend = function() {
text = (reader.result);
}
reader.readAsBinaryString(document.getElementById("firmware_firmware").files[0]);
var hash = CryptoJS.MD5(text);
hash.toString();
在Linux中我做的:
md5sum name_of_file.tar
目前這兩個產生不同的結果。我怎樣才能讓JavaScript獲得tar文件內容的MD5ed,就像md5sum在Linux上做的一樣?
對於一個簡單的字符串,md5sum和CryptoJS產生相同的值。
編輯:使用名爲Fred.txt的文件,內容爲「Fred」,md5sum和CryptoJS都會生成相同的值:c624decb46fa3d60e824389311b252f6。
在update.tar文件,在Linux上的md5sum給我:1f046eedb7d8279953d233e590830e4f,在CryptoJS它給了我:f0c3730e5a9863cffa0ba3fadd531788
EDIT2:進一步的測試表明,這其實是一個問題,由於文件尺寸較大,如7 MegaBytes
你能舉兩個例子嗎? 'readAsBinaryString(.....)'有可能散列文件名而不是文件內容? – DanFromGermany
感謝您的回覆,我用簡單的字符串測試了一個簡單的txt文件,在這種情況下,linux和CryptoJS上的md5sum產生了相同的結果。我將在輸出中進行編輯。 – tblakey89
我也遇到了CryptoJS.MD5()的這個問題,並且我發現了Paul Johnston的另一個功能,它給出了正確的md5。您可以在線測試http://plink.link/39cc83f38263adee5bc655f11fbcefab/html – moldcraft