
17.12.2009, 16:08
|
|
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
С нами:
9193651
Репутация:
32
|
|
Некоторым может показаться, что тут можно устроить побитовый перебор.
К сожалению это не так.
Даже, если вы знаете длину исхожного сообщения, знаете пусть даже часть сообщения.
Всёравно каждый бит зависит от другого бита.
Эту зависимость как раз и делают вышеописанный ротор и сложение результата текущего с результатом предыдущим.
Код:
A:= B + LRot32(A + (D xor (B and (C xor D))) + HashBuffer[ 0] + $D76AA478, 7);
D:= A + LRot32(D + (C xor (A and (B xor C))) + HashBuffer[ 1] + $E8C7B756, 12);
Так называемый "Лавинный эффект"
|
|
|