Шифрование методом XOR
Шифрование методом 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;
}