Цитата:
Сообщение от Kilatif
Вот мой класс BlowFish На C#
|
Спасибо, все-таки с С# переписывать удобнее
Падает на этой функции:
Код:
private long S(long x, byte i)
{
byte[] bts = new byte[4];
bts = BitConverter.GetBytes(x);
return SBoxes[i, bts[3-i]];
}
Проблема в чем: С# выдает {3, 169, 95, 79, 0, 0, 0, 0}, а ява {3,
-87, 95, 79, 0,0,0,0}. Понятное дело что нет в массиве такого числа. Кто знает как эту проблему решить?
Вроде решил:
Код:
int j = 0;
if(bts[3-i] < 0){
j = HelpFunctions.UB2I(bts[3-i]);
}
else{
j = bts[3-i];
}
return SBoxes[i][j];
подменяю отрицательные.
Проблема теперь в другом:
Массивы Parray и SBoxes после Init содержат только 0. Хотя в отладке вроде заполняются.