作者:DaybreakCP | 来源:互联网 | 2022-12-06 19:16
问题:
如何正确生成校验和,这是独立的,一致的,独立于浏览器?另外,我想将SHA256/MD5校验和字符串转换为64位.
如何在没有大量RAM要求的情况下正确读取文件以生成校验和?即我们如何在不影响RAM的情况下处理1 GB文件
例如,是否可以在不将文件加载到内存的情况下读取文件?(见答案)
这个项目似乎很有希望,但也无法实现.
我的目的是在X MB的块中逐步/递增地生成校验和.这可能有助于避免一次使用太多RAM.
以下是代码,它没有按预期工作:
let SIZE_CHECKSUM = 10 * Math.pow(1024, 2); // 10 MB; But can be 1 MB too
async function GetChecksum (file: File):
Promise
{
let hashAlgorithm: CryptoJS.lib.IHasher = CryptoJS.algo.SHA256.create();
let totalChunks: number = Math.ceil(file.size / SIZE_CHECKSUM);
for (let chunkCount = 0, start = 0, end = 0; chunkCount
它在不同的浏览器中显示不同的结果