我需要计算一个由两个不同方面持有的文本的哈希,这两个方面不应该访问彼此的文本。
由于SHA-1是增量的,我听说这应该是可能的,但无法找到任何实现此功能的库的Google的答案。
我希望SHA-1的第一方将其部分文本哈希,然后将哈希(摘要)提供给第二方,他们将继续哈希,并计算组合文本的总摘要。如果这是可能的,有没有人知道任何带有文本和前一个哈希作为输入参数的库?最好是在javascript或python中,但我真的很乐意接受任何语言。
更新:我正在查看SHA-1的forge(javascript)实现的源代码,并在更新方法中看到此代码:
// initialize hash value for this chunk
a = s.h0;
b = s.h1;
c = s.h2;
d = s.h3;
e = s.h4;
在该方法结束时:
s.h0 = (s.h0 + a) | 0;
s.h1 = (s.h1 + b) | 0;
s.h2 = (s.h2 + c) | 0;
s.h3 = (s.h3 + d) | 0;
s.h4 = (s.h4 + e) | 0;
所以似乎通过携带这些值+输入缓冲区中的任何剩余数据,人们应该能够在第2号聚会上重新创建SHA-1对象的状态。因此,一些缓冲区将泄漏结束但我认为应该没问题。将进一步调查,看看是否有效。