Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.
Как хешировать данные
A: (SUnteXx)
Оригинальная ссылка: нету

Ударила мне тут в голову нечто желтое и пенное (не все то пиво, что желтое и пенное), и решил помочь человеку из форума зашифровать данные. Этому челу посоветовали шифровать методом XOR. Именно это я и сделал.

Вот что получилось у меня:
#include <stdio.h>
 
 #include <conio.h>
 
 
 
 void code(char* lpName, char* lpPassword, char* lpResult)
 
 // Функция хеширует данные, т.е. превращает в нечто страшное %), не понятное без поллитра!
 
 {
 
     unsigned int a = 0, b = 0;
 
     a = 0;
 
     while (lpResult[a]) // мое извращение. читается как "пока существует строка lpResult"
 
     {
 
         b = 0;
 
         while (lpPassword[b]) // пока существует строка lpPassword
 
         {
 
             lpResult[a] ^= (lpPassword[b] + (a*b)); // хэшируем простым XOR'ом
 
             b++; // идем к следующему символу lpPassword
 
         }
 
         a++; // идем к следующему символу lpResult
 
     }
 
 }
 
 
 
 void main(void)
 
 {
 
     char szName[100];
 
     char szPassword[20];
 
     char szResult[100];
 
 
 
     printf("Enter your name: "); // просим юзера ввести свое имя
 
     scanf("%s", szName); // вводит юзер имя
 
 
 
     printf("Enter your password: "); // просим ввести пароль
 
     scanf("%s", szPassword); // вводит
 
 
 
     unsigned int a = 0;
 
 /***     Далее идет функция копирования одной строки в другую     ***/
 
     while (szName[a])
 
     {
 
         szResult[a] = szName[a];
 
         a++;
 
     }
 
     szResult[a] = 0;
 
 /*** все, скопировали. Можно так же юзать strcpy(szResult, szName) ***/
 
 // Просто захотелось поизвращаться %))
 
     
 
     code(szName, szPassword, szResult); // хэшируем данные
 
     printf ("\r\n\r\nEncoded: %s\r\n", szResult); // ввыводим получившуюся хрень
 
 
 
     code(szName, szPassword, szResult); // расхэшируем данные
 
     printf ("Decoded: %s\r\n", szResult); // выводим получившуюся хрень
 
 
 
     printf ("\r\n", szResult); // выводим пробел
 
 
 
     printf("Press any key to continue"); // просим нажать any key на клавиатуре
 
     while (!_getch()); // ждем, пока юзверь не кликнул any key
 
 
 
     return;
 
 }
А далее не по делу :)

Тут базарил с девушкой по телефону, параллельно писАл прогу. Потестил, вроде работает. Удивился, но да ладно. Спрашиваю у нее:
- Скажи какое-нибудь имя
- Саша, - говорит она (это ее имя - прим. меня)
- А теперь пароль
- Саша, - говорит она (она человек далекий от компьютера и пароли приходится придумывать редко - прим. меня)

А сам тем временем пока она говорит имена и пароли ввожу их. Некоторые слова так хорошо шифровались, что было весело.
Теперь попробуйте ввести эти данные:
Name: Sasha
Password: Sasha

Как вам ответ? У меня получилось "<+3:)". Клевый смайл, не так ли?



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS