Шифрование методом XOR.
#include <stdio.h> #include <conio.h>
// Функция хеширует данные void code(char* lpName, char* lpPassword, char* lpResult) { unsigned int a = 0, b = 0; a = 0;
// пока существует строка lpResult while (lpResult[a]) { b = 0;
// пока существует строка lpPassword while (lpPassword[b]) { // хэшируем простым XOR'ом lpResult[a] ^= (lpPassword[b] + (a*b)); // идем к следующему символу lpPassword b++; } // идем к следующему символу lpResult a++; } }
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);
// просим нажать any key на клавиатуре printf("Press any key to continue"); // ждем, пока юзверь не кликнул any key while (!_getch());
return; } |