Cerința
Se citește un text de maxim 256
caractere și o cheie de număr egal de caractere cu textul citit. După aplicarea Encripției XOR
, caracterele rezultate se vor afișa în format binar
deoarece în majoritatea cazurilor se obțin caractere neprintabile.
Encripția XOR
presupune aplicarea operatorului pe biți XOR
între text și cheie, între fiecare caracter din text și caracterul din cheie de pe aceeași poziție cu cel din text: text[i] XOR cheie[i]
. Pentru decriptare, operatorul se aplică între cheie și textul criptat.
Date de intrare
Fișierul de intrare xorcrypt.in
conține:
Exemplu
xorcrypt.in
xor key
xorcrypt.out
00010011 00001010 00001011
Explicație
x^k -> 00010011
o^e -> 00001010
r^y -> 00001011
#include <bits/stdc++.h> using namespace std; ifstream cin("xorcrypt.in"); ofstream cout("xorcrypt.out"); char a[256] , b[256] , rez[8]; int n , x , y; void schimb(int n) { for(int i = 0 ; i < 8 ; i++) rez[i] = '0'; int ind = 7; while(n != 0) { rez[ind] = n % 2 + '0'; ind--; n /= 2; } cout << rez << " "; } int main() { cin.getline(a , 260); cin.getline(b , 260); n = strlen(a); for(int i = 0 ; i < n ; i++) { x = int(a[i]) , y = int(b[i]); schimb(x^y); } return 0; }