node快速计算md5
Posted leejay6567
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node快速计算md5相关的知识,希望对你有一定的参考价值。
最近在做一个文件上传的项目,当上传文件达到几十GB,几百GB后在文件上传99%后,需要等待非常长的时间文件才能完成上传。通过埋点打印时间,发现md5计算时间非常长。
为了校验文件传输的完整性需要在文件上传结束后校验文件的完整性,md5值就用来校验完整性,所以这一步不能少。
解决方案
通过网上查找资料,MD5计算工具在计算大文件md5值时也不是一次性计算出来的,也是通过分片的方式累加计算出来的。
所以我们在上传大文件时,本来上传的思路就是分片上传,我们只需要对每块分片进行md5计算,最后累加计算md5值即可。
通过网上google发现了一篇介绍node通过crypto加密模块实现md5加密的方法,里面的介绍很详细,里面介绍了最快速计算md5的方法:
require(‘crypto‘).createHash(‘md5‘).update(data).digest(‘hex‘)
update中传入每片数据的二进制流。通过测试发现每块分片计算的md5时间为20多毫秒,速度提升了几十倍。
以上是关于node快速计算md5的主要内容,如果未能解决你的问题,请参考以下文章