文件分片计算sha256 js
时间: 2023-08-09 16:09:33 浏览: 269
以下是一个简单的 JavaScript 函数,用于计算文件的 SHA256 哈希值并分片处理:
```javascript
function calculateSHA256(file, chunkSize, onChunkCompleted, onCompleted) {
const fileSize = file.size;
let offset = 0;
const hasher = new Hashes.SHA256();
// 递归函数,处理每个文件分片
function processChunk() {
if (offset < fileSize) {
const chunkReader = new FileReader();
const chunkEnd = Math.min(offset + chunkSize, fileSize);
const chunk = file.slice(offset, chunkEnd);
chunkReader.onload = function(e) {
hasher.update(e.target.result);
offset += chunkSize;
onChunkCompleted(hasher.getHMAC());
processChunk();
};
chunkReader.readAsArrayBuffer(chunk);
} else {
onCompleted(hasher.getHash('hex'));
}
}
processChunk();
}
```
使用示例:
```javascript
// 选择一个文件
const fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', function() {
const file = fileInput.files[0];
const chunkSize = 1024 * 1024; // 每个分片的大小为 1MB
// 处理每个文件分片
calculateSHA256(file, chunkSize, function(chunkHash) {
console.log('分片哈希值:', chunkHash);
}, function(fileHash) {
console.log('文件 SHA256 哈希值:', fileHash);
});
});
```
注意:此代码依赖于第三方库 Hashes.js,需要在 HTML 文件中引入该库。
阅读全文
相关推荐


















