FAQ по C/C++/Visual C++
Работа с сетью Как хешировать данные |
Составители: SUnteXx, Leprecon |
Как хешировать данные | |||
Вот что получилось у меня: #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:)". Клевый смайл, не так ли? |
Ударила мне тут в голову нечто желтое и пенное (не все то пиво, что желтое и пенное), и решил помочь человеку из форума зашифровать данные. Этому челу посоветовали шифровать методом XOR. Именно это я и сделал.|||
|
FAQ составлен по материалам Форума на Исходниках.Ру. Copyright © 2002 by Sources.ru. All rights reserved. |