Я разработал веб-приложение, в котором пользователь может выбрать несколько файлов через поле ввода.Затем контрольные суммы sha-256 рассчитываются по следующему коду.Код (взятый из developer.mozilla.org) работает только для небольших файлов.Что я должен изменить для обработки больших файлов (например, 1 ГБ +)?
function sha256(buffer){
return crypto.subtle.digest("SHA-256", buffer).then(function (hash) {
return hex(hash);
});
}
function hex(buffer) {
var hexCodes = [];
var view = new DataView(buffer);
for (var i = 0; i < view.byteLength; i += 4) {
// Using getUint32 reduces the number of iterations needed (we process 4 bytes each time)
var value = view.getUint32(i)
// toString(16) will give the hex representation of the number without padding
var stringValue = value.toString(16)
// We use concatenation and slice for padding
var padding = '00000000'
var paddedValue = (padding + stringValue).slice(-padding.length)
hexCodes.push(paddedValue);
}
// Join all the hex strings into one
return hexCodes.join("");
}