Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: bronenos   (14.07.2008 в 11:41)
Апдейт.. если я провожу операцию на

uchar codes[] = {
0xF3, 0x26, 0x81, 0xC4,
0x39, 0x86, 0xDB, 0x92,
0x71, 0xA3, 0xB9, 0xE6,
0x53, 0x7A, 0x95, 0x7C
};

uchar text[] = {
0x28, 0x62, 0x72, 0x29,
0x74, 0x65, 0x73, 0x74
};

int i;
uchar symbol;
Data* pswd = [[Data alloc] init];

for (i=0; i<[password length]; i++)
{
symbol = (unichar) text[i] ^ codes[i];
[pswd appendBytes:&symbol length:1];
}

return pswd;


То значит вылетает.. последний символ (8й в моем случае)
0xE6 при 0x74 ^ 0x92
Если 0x74 заменить на 0x73, то
0xE1 при 0x73 ^ 0x93 (программа работает)
Если 0x74 заменить на 0x75, то
0xE7 при 0x75 ^ 0x93 (программа работает)
Если вернуть 0x74, то она опять вылетает.. я не въезжаю...

Кстати прошу заметить, что у меня два таких символа 0x74.. и проблема только с последним..
И даже если я заменю на

uchar text[] = {
0x28, 0x62, 0x72, 0x29,
0x74, 0x74, 0x74, 0x73
};

То тоже будет работать.. пока последний не станет 0x74..
Может, это и не единственное проблемное значение.. но перебирать все 256 мне неохота 8)


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: