Код:
data:=((key[j] and $FF)shl 24) or
((key[(j+1) mod Size] and $FF)shl 16) or
((key[(j+2) mod Size] and $FF)shl 8) or
(key[(j+3) mod Size] and $FF);
мне кажется, что это неправильно переписали.. как работает key[(j+3) mod Size?
Добавлено через 2 минуты
Цитата:
Сообщение от Kilatif
Tin-moon, так у тебя блоуфиш до сих пор не работает? Ты возьми в Delphi и в java объяви по блоуфишку, инициализируй их одинаковым ключем и посмотри как они кодируют и декодируют одинаковые данные (это необязательно должен быть пакет, любой свой массив).
|
Понимаешь проблема не в кодировать декодировать а в самом ините, там уже разные данные получаются.
Например, после этого кода
Код:
for i:=0 to 17 do begin
data:=((key[j] and $FF)shl 24)or((key[(j+1) mod Size] and $FF)shl 16)or((key[(j+2) mod Size] and $FF)shl 8)or(key[(j+3) mod Size] and $FF);
PArray[i] := PArray[i] xor data ;
j := (j + 4) mod Size ;
end;
На яве совпало только то что с +
/*
(1331667411+, 124622946+, 3744654971, 1864113960+, 3479827321, 2874253665,
3288700621, 2149712101, 776530621+, 3122561990, 1920928410+, 1485135872+,
2882331372, 1270005868+, 4088379872, 3643499899, 4185267842, 196570026+)
*/
Сори малек затупил это часть верно (пора ложиться спать наверно
), не верные данные вот от сюда:
Код:
datal := 0 ;
datar := 0 ;
for i:=0 to 8 do begin
Blowfish_encipher (datal, datar) ;
PArray[i*2] := datal ;
PArray[i*2 + 1] := datar ;
end;
Наверно мне нужно разобрать что я там с Blowfish_encipher натупил.