Показать сообщение отдельно
Старый 13.02.2012, 00:53   #30
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

Цитата:
Сообщение от 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. Хотя в отладке вроде заполняются.

Последний раз редактировалось Tin-moon, 13.02.2012 в 01:19.
Tin-moon вне форума   Ответить с цитированием