Подать промежуточный дайджест для функции ша-1?

Мне нужно вычислить хэш текста, который состоит из двух частей, которые хранятся двумя разными сторонами, которые не должны иметь доступа к текстам друг друга.

Поскольку 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;

Таким образом, кажется, что, перенося эти значения + любые оставшиеся данные во входном буфере, нужно иметь возможность воссоздать состояние объекта SHA-1 на стороне номер 2. Таким образом, часть буфера будет просачиваться, но я думаю, что все должно быть в порядке. Будем исследовать дальше, чтобы увидеть, если это работает.

0 ответов

Другие вопросы по тегам