Форум С++

 

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

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

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

Автор: bronenos   (13.07.2008 в 23:25)
Это не C++, это Objective C (если возникнут вопросы про синтаксис), но он полностью совместим с C, и потому проблема чисто в C, как мне кажется...


/* Кодирование пароля */
+(Data*) encodePassword: (NSString*)password
{
uchar codes[] = {
0xF3, 0x26, 0x81, 0xC4,
0x39, 0x86, 0xDB, 0x92,
0x71, 0xA3, 0xB9, 0xE6,
0x53, 0x7A, 0x95, 0x7C
};

int i;
uchar* symbols = (uchar*) malloc([password length]*sizeof(uchar));
for (i=0; i<[password length]; i++) symbols[i] = (uchar) [password characterAtIndex:i] ^ codes[i];

Data* pswd = [[Data alloc] init];
[pswd appendBytes:symbols length:[password length]];
return pswd;
}


По какой-то причине, если я здесь добавлю вместо последнего symbol байт 0x80 и больше, то все слетает.. если я вручную впишу symbols[i] = 0xYY; то даже если будет 0xDB, все продолжит работать.. ну не понимаю я... (использую unsigned char* стек)


Ваше имя:

Пароль:

Цитировать

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

Сообщение:

Прикрепить: