在浏览器中,我使用JS FileReader().readAsBinaryString()来读取文件。使用CryptoJS库,我可以对数据进行MD5哈希。
这样做很好,但是我不知道如何处理大文件。例如,只需读取2GiB的文件即可使浏览器窗口崩溃。我可以从文件数据中切片块并在执行操作时进行哈希,但这会阻止其他人在不遵循相同步骤的情况下验证相同的哈希值。
在这种情况下,有没有一种方法可以获取大文件的md5哈希值?例如,如何计算1TB文件的md5哈希值?我需要将文件读入流中吗?
这是我第一次尝试此操作,并不确定该如何处理。
这个问题出现在Angular指令中,因此涉及作用域。
这样做很好,但是我不知道如何处理大文件。例如,只需读取2GiB的文件即可使浏览器窗口崩溃。我可以从文件数据中切片块并在执行操作时进行哈希,但这会阻止其他人在不遵循相同步骤的情况下验证相同的哈希值。
在这种情况下,有没有一种方法可以获取大文件的md5哈希值?例如,如何计算1TB文件的md5哈希值?我需要将文件读入流中吗?
这是我第一次尝试此操作,并不确定该如何处理。
这个问题出现在Angular指令中,因此涉及作用域。
var reader = new FileReader();
reader.onload = function (loadEvent) {
scope.$apply(function () {
scope.files = changeEvent.target.files;
scope.fileread = loadEvent.target.result;
scope.md5Data = CryptoJS.MD5(scope.fileread).toString();
});
}
// First ten megs of the file
reader.readAsBinaryString((changeEvent.target.files[0]).slice(0, 10 * 1024 * 1024));