XOR coder

Szyfr XOR to jeden z najprostszych sposób zaszyfrowania swoich danych.
Na samym początku podam co to jest ten XOR, otóż jest to operacja bitowa, która ustawia bit, gdy dwa podane argumenty (powiedzmy a i b) są różne
Tak więc:
1 xor 1 = 0
0 xor 0 = 0
1 xor 0 = 1
0 xor 1 = 1
Więcej o operacjach bitowych możesz przeczytać tu
Na czym polega szyfrowanie XOR?
Otóż gdy mamy jakiś znak, np A ,to temu znakowi przypisany jest jego kod ASCII w wartości dziesiętnej – dla A jest to 65. Na podstawie tego możemy obliczyć, że hexadecymalna wartość kodu A to 41 a binarna 01000001.
Żeby znaleźć kod ASCII danej litery możemy zerknąć tu
a żeby przetłumaczyć tekst na różne wariacje kodu ASCII należy zajrzeć tu
Kiedy chcemy zaszyfrować tekst to pobieramy wartość binarną każdego znaku i wykonujemy na niej operacje XOR, gdzie drugim argumentem jest nasz kod, który również jest zamieniany na wartość binarną gdybyśmy chcieli zaszyfrować znak
A przy użyciu liczby 12 wyglądałoby to mniej więcej tak:
xor 01000001,1100
i dałoby to wartość: 01001101 co jest równoznaczne z literą M tak więc
xor A,12 => M

Na koniec kod cryptera w języku C szyfrującego dane za pomocą szyfru XOR 😉

#include
#include
int main(int argc,char *argv[]){
if(argc<3){
printf(
"Prosty XOR coder\n"
"Uzycie: %s tekst_do_zaszyfrowania kod\n",argv[0]);
exit(0);
}
int i,k;
int code=atoi(argv[2]);
char text[100];
strcpy(text,argv[1]);
for(i=0;i<strlen(text);i++){
text[i]^=code;
}
printf("%s %s\n",text);
}

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s