OpenSSL:可以停止散列大文件,稍后再恢复吗?

时间:2018-03-25 22:50:11

标签: node.js hash openssl cryptography

我正在处理分布式系统中存储的非常大(100GB +)的视频文件。这些文件需要进行哈希处理,但在一次操作中计算一台计算机上文件的哈希值通常效率不高。

使用OpenSSL是否有办法:

  • 通过文件中途停止哈希操作
  • 输出哈希算法的内部状态
  • 存储内部状态
  • 稍后通过将内部状态注入,并从原始哈希操作停止的文件中的点继续,从中断处继续哈希操作?

各种不同的用例:

  1. 文件的部件分布在多台计算机上,没有一台计算机拥有整个文件。
  2. 在多台不同的计算机上存在(完整)文件。通过在系统A上执行散列的第一部分来扩展负载,然后在系统B上完成它。
  3. 如果出现网络错误或系统崩溃,可以从停止的位置恢复散列操作,而不是从头开始重新开始。
  4. 我需要使用各种哈希算法:MD5,SHA1,SHA256。

    NB将文件分成块并独立散列每个块不是一种选择,因为散列需要经过验证,例如整个文件的已知MD5值。

    从我对哈希函数的工作理解来看,这似乎在理论上是可行的,但我无法从文档中找出是否可以使用OpenSSL(命令行)。

    如果OpenSSL无法做到这一点,我会对其他解决方案感兴趣,尤其是那些使用Node.js的解决方案。

    非常感谢任何帮助。

0 个答案:

没有答案