Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Генератор серийных номеров

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток!
В Visual studio 2010 был создан проект Windows form Application. Программа генерирует серийный номер на основе имени пользователя и "собирает" его в calcCode. Проблема в том, что в эту переменную копируются не символы, а цифры. А должны копироваться символы. Причём эти цифры (в calcCode) не соответствуют символам (по ISCII) символу, из источнока копирования (ch). Значения немного больше.
 

Код:
private: System::Void button2_MouseClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
             int leng;
             String ^sName;//Имя пользователя
             String ^sName1;//Серийный номер
             WORD twoChar;
             unsigned char ch;
             String ^calcCode;
             leng=this->textBox1->Text->Length;
             sName=this->textBox1->Text;
             sName1=this->textBox2->Text;
             if (leng<0xA)
             {
                 MessageBox::Show("Ваше имя слишком короткое");
                 return;
             }
             for (int i=0;i<leng-1;i++)
             {
                 twoChar=(WORD)sName[i]+(WORD)sName[i+1];
                 ch= (twoChar % 0x20) + 'A';
                 calcCode+=ch;
             }
             if (calcCode==sName1)
             {
                 MessageBox::Show("Спасибо за регистрацию!");
                 return;
             }  
             else
             {
                  
                 MessageBox::Show("Не правильный регистрационный номер!");
                 return;
             }
 
         }

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 23:27 23-08-2015
StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Причём эти цифры (в calcCode) не соответствуют символам (по ISCII) символу, из источнока копирования (ch). Значения немного больше.

Соответствует. Просто перводит из hex в десятичный вид.

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 09:28 24-08-2015
StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрался.
calcCode+=wchar_t(ch);

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 20:41 24-08-2015
StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, кстати забыл сказать, не используюте этот код для защиты реальных программ. Он очень легко ламается. Для усиления защиты нужно добавить кое-какие запчасти.

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 20:34 26-08-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Генератор серийных номеров


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru