Как проверить контрольную сумму загружаемого файла с помощью javascript?

Я хочу проверить контрольную сумму файлов на стороне браузера перед загрузкой, затем контрольную сумму и сравнить на стороне сервера, чтобы убедиться в согласованности. Но как я могу получить чистые двоичные данные файла и проверить его контрольную сумму? Я пробовал способ ниже, но не работает:

let fileSelect = document.getElementById('file')
let files = fileSelect.files
let file = files[0]

var r = new FileReader();
r.onload = function(){ console.log(r.result); };
r.readAsArrayBuffer(file);
var file_sha1 = sha1(r.result)

person Suge    schedule 23.03.2016    source источник
comment
На что похожа ваша sha1 функция?   -  person jayms    schedule 23.03.2016
comment
Проверьте этот вопрос здесь stackoverflow.com/questions/16505333/   -  person Luo    schedule 23.03.2016
comment
@jayms, я использую эту библиотеку npm: npmjs.com/package/sha1   -  person Suge    schedule 24.03.2016


Ответы (1)


Библиотека, которую вы используете, похоже, поддерживает только строковый ввод. Найдите библиотеку, поддерживающую двоичный ввод. Например. js-sha1. И вы должны хешировать его в обратном вызове.

var reader = new FileReader();
reader.onload = function (event) {
  var file_sha1 = sha1(event.target.result)
};
reader.readAsArrayBuffer(file);
person emn178    schedule 31.03.2016