HTML加js实现计算文件哈希值,前端页面使用js计算文件的md5和sha256

该博客介绍了一种使用JavaScript和CryptoJS库计算文件MD5和SHA256哈希值的方法。通过文件切片、异步处理和增量更新,避免了浏览器内存溢出问题,适用于任何框架。
摘要由CSDN通过智能技术生成

一篇纯代码的文章。更多的说明在代码中

import CryptoJs from 'crypto-js'

import encHex from 'crypto-js/enc-hex'

/**

* 用于计算文件的hash值,包括sha256值和md5值

*/

function hashFile (file) {

/**

* 使用指定的算法计算hash值

*/

function hashFileInternal (file, alog) {

// 指定块的大小,这里设置为20MB,可以根据实际情况进行配置

const chunkSize = 20 * 1024 * 1024

let promise = Promise.resolve()

// 使用promise来串联hash计算的顺序。因为FileReader是在事件中处理文件内容的,必须要通过某种机制来保证update的顺序是文件正确的顺序

for (let index = 0; index < file.size; index += chunkSize) {

promise = promise.then(() => hashBlob(file.slice(index, index + chunkSize)))

}

/**

* 更新文件块的hash值

*/

function hashBlob (blob) {

return new Promise((resolve, reject) => {

const

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值