Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种有效的方法来生成浏览器数组缓冲区的MD5哈希?_Javascript_Md5_Filereader_Arraybuffer - Fatal编程技术网

Javascript 是否有一种有效的方法来生成浏览器数组缓冲区的MD5哈希?

Javascript 是否有一种有效的方法来生成浏览器数组缓冲区的MD5哈希?,javascript,md5,filereader,arraybuffer,Javascript,Md5,Filereader,Arraybuffer,我正在研究一种从web应用程序将文件上传到API的策略。API需要随文件一起发送的文件的MD5散列。我相信这里的意图是,他们将生成一个MD5,并对两者进行比较,以查看文件内容是否在没有任何数据丢失或更改的情况下发送到服务器 我可以通过使用文件读取器API来readAsText或readAsBinaryData生成MD5,然后通过MD5算法运行内容 我的问题是,其中许多都是专门的图像文件,大小从10mb到500mb不等。试图以二进制或文本形式读取这些内容需要几分钟,有时甚至会导致浏览器崩溃 使用r

我正在研究一种从web应用程序将文件上传到API的策略。API需要随文件一起发送的文件的MD5散列。我相信这里的意图是,他们将生成一个MD5,并对两者进行比较,以查看文件内容是否在没有任何数据丢失或更改的情况下发送到服务器

我可以通过使用文件读取器API来readAsText或readAsBinaryData生成MD5,然后通过MD5算法运行内容

我的问题是,其中许多都是专门的图像文件,大小从10mb到500mb不等。试图以二进制或文本形式读取这些内容需要几分钟,有时甚至会导致浏览器崩溃

使用readAsArrayBuffer在读取方面似乎性能更高,但我找不到一种生成MD5的策略,它的资源密集度不如使用readAsText

那么,是否有一种从阵列缓冲区生成MD5的轻量级策略?也许真正的问题是,有没有更好的方法来验证文件是否在不中断的情况下从客户端传输到服务器?我对API没有控制权,但可以提出更改建议。

1)CRC32和MD5怎么样


2) 可以增量散列

谢谢你的提示。CRC32只是另一种散列算法吗?spark增量散列可能就是我的选择。它似乎不会加快速度,但它会给我一些工具,使浏览器不会完全崩溃,并对正在发生的事情提供增量反馈。不要将CRC视为哈希函数。它不具有加密强度和抗冲突性。但是,此算法非常适合于检查网络传输的完整性数据。再次感谢。我能够得到一个很好的设置与增量散列进行。幸运的是,我只需要在Chrome上支持这一点,所以我能够在WebWorkers中运行所有哈希,现在它可以运行得尽可能平滑。