Я пытаюсь получить md5sum файла tar для получения того же значения при использовании команды md5sum linux и метода MD5 CryptoJS.Получение md5sum файла через Crypto.js
В 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, то md5sum на Linux дает мне: 1f046eedb7d8279953d233e590830e4f, на CryptoJS это дает мне: f0c3730e5a9863cffa0ba3fadd531788
edit2: Дальнейшее тестирование показывает, что это на самом деле проблема из-за большого размера файла, такие как 7 MegaBytes
Можете ли вы привести примеры вывода обоих? Возможно ли, что 'readAsBinaryString (.....)' хеширует имя файла, а не содержимое файла? – DanFromGermany
Спасибо за ответ, я протестировал его с помощью простого txt-файла с простой строкой, в этой ситуации md5sum на linux и CryptoJS дают тот же результат. Я буду редактировать результаты. – tblakey89
Я также столкнулся с этой проблемой с CryptoJS.MD5(), и я нашел еще одну функцию Paul Johnston, которая дает правильный md5. Вы можете протестировать его в Интернете http://plink.link/39cc83f38263adee5bc655f11fbcefab/html – moldcraft