Encriptare simpla folosind XOR
area72, avantaje xor, C++, Cornescu Andrey, cpp xor, criptografie, decriptare xor, encriptare xor, php xor
Encriptarea XOR
Encriptare XOR este folosita în aplicațiile în care securitate nu trebuie neapărat sa fie un punct forte, însă este necesara pentru a obstrucționa datele și a le face inaccesibile utilizatorului de rând. Mesajul encriptat folosind SAU-ul EXCLUSIV ( XOR ) este aproape imposibil de spart folosind metoda brute force, însa aceasta este vulnerabila la pattern-uri ( în cazul în care cheia este mai mica decat mesajul ).
Cum functioneaza ?
Encriptarea funcționează prin aplicarea operatorului SAU-Exclusiv ( ^ ) fiecărui caracter din sir, astfel schimbându-i valoarea. Pentru a decripta mesajul este necesara reaplicarea cheii astfel rezultând mesajul original.
* A ^ 0 = A
* A ^ A = 0
* (B ^ A) ^ A = B ^ 0 = B
Implementare
Mai jos puteți vedea o implementare în c++
void encrypt(char string[], char key[])
{
int string_len = strlen(string);
int key_length = strlen(key);
int i,position;
for(i = 0; i < string_len; i++)
{
position = i % key_length;
string[i] = (char)((int)string[i] ^ (int)key[position]);
}
}
Și de asemenea o implementare în php plus exemplu de folosire
function encryption($string, $key)
{
$string_len = strlen($string);
$key_length = strlen($key);
for( $i = 0; $i < $string_len; $i++)
{
$position = $i % $key_length;
$replace = ord($string[$i]) ^ ord($key[$position]);
$string[$i] = chr($replace);
}
return $string;
}
//Cum folosim aceasta funcție ?
//encriptare
$mesaj = base64_encrypt(encryption($mesaj, “1qazxsw2″));
echo $password; // mesaj encriptata
//decryption
$mesaj = encryption(base64_decrypt($mesaj), “1qazxsw2″));
echo $mesaj; // mesaj original
Observati ca pentru a encripta si decripta mesajul ne folosim si de functia base64_encrypt/decrypt, aceasta este doar pentru a preveni afisarea caracterelor neprintabile.
Avantaje
- Simplu de implementat necesitând doar câteva linii de cod
- Mesajul este extrem de bine protejat dacă lungimea mesajului <= lungimea cheii
Articolul original il puteti gasi aici.






Nou pe 


Comentarii la "Encriptare simpla folosind XOR"
Da, imi place. Se mai poate face resetand pozitia la 0 atunci cand lungimea cheii e mai mare decat lungimea textului, un simplu if.