const input = document.createElement("input");
input.type = "file";
document.body.append(input);
input.addEventListener("change", async event => {
const file = input.files[0];
const ab = await file.arrayBuffer();
const wa = CryptoJS.lib.WordArray.create(ab);
const hash = CryptoJS.MD5(wa);
console.log(hash.toString());
});
Лучше использовать
emn178/js-md5
, работает раз в 7 быстрее.
Файл, к слову, можно читать по частям и "прогрессивно" (инкрементально) вычислять хеш.
(
CryptoJS.algo.MD5.create()
и методы
update
и
finalize
)