Шифрование методом 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;
}
 
« Предыдущая статья   Следующая статья »