0


md5加密spark-md5

MD5加密spark-md5

计算md5值,整个文件计算或者分片计算

在前端开发项目中,通常使用spark-md5库来生成md5值。有两种方法,一种是直接将整个文件传入,直接返回文件的md5。这种方法对于小文件会比较有优势,简单而且速度超快。

另一种方法是利用js中File对象的 slice() 方法( File.prototype.slice )将文件分片后逐个传入 spark.appendBinary() 方法来计算,最后通过 spark.end() 方法输出md5。分片计算md5,对于大文件和超大文件会非常有利,不容易出错,不占用大内存

注意:
1.1G左右的文件,分片Md5计算的耗时大概是整个文件Md5计算的一半,文件越大越明显
2. 大文件(大于4G)一定要分片计算Md5值,原因:大文件一次性计算Md5有时会遇到卡死现象或者没有响应,原因是FileReader是 JavaScript 中用于读取文件内容的 API,在使用FileReader读取大文件(大于4G)时,它将整个文件加载到内存中进行处理,而大文件可能会超出浏览器的内存限制,导致浏览器崩溃或运行缓慢。因此,对于大文件(大于4G)需要分片计算Md5值
3. 再进一步优化就是放在web worker中计算,因为文件的MD5值计算是纯运算,将阻塞JS主线程的运行,在文件较大时,计算过程将使得浏览器长时间处于无响应状态而web-worker与JS处于不同的线程,相互并不阻塞,因此可以将一些耗时的纯运算放在web-worker中进行,等待完成后通知到JS主线程

整个文件计算md5(适用于小文件)

在这里插入图片描述

分片计算md5(适用于大文件)

在这里插入图片描述

标签: javascript

本文转载自: https://blog.csdn.net/weixin_42682011/article/details/140159176
版权归原作者 我还是我… 所有, 如有侵权,请联系我们删除。

“md5加密spark-md5”的评论:

还没有评论