Kryptografia w Pythonie - proces XOR
W tym rozdziale przyjrzyjmy się procesowi XOR wraz z jego kodowaniem w Pythonie.
Algorytm
Algorytm XOR szyfrowania i deszyfrowania konwertuje zwykły tekst w formacie ASCII bajtów i wykorzystuje procedurę XOR do konwersji go na określony bajt. Oferuje użytkownikom następujące korzyści -
- Szybkie obliczenia
- Brak różnicy zaznaczonej po lewej i prawej stronie
- Łatwe do zrozumienia i analizy
Kod
Możesz użyć następującego fragmentu kodu do wykonania procesu XOR -
def xor_crypt_string(data, key = 'awesomepassword', encode = False, decode = False):
from itertools import izip, cycle
import base64
if decode:
data = base64.decodestring(data)
xored = ''.join(chr(ord(x) ^ ord(y)) for (x,y) in izip(data, cycle(key)))
if encode:
return base64.encodestring(xored).strip()
return xored
secret_data = "XOR procedure"
print("The cipher text is")
print xor_crypt_string(secret_data, encode = True)
print("The plain text fetched")
print xor_crypt_string(xor_crypt_string(secret_data, encode = True), decode = True)
Wynik
Kod procesu XOR daje następujące dane wyjściowe -
Wyjaśnienie
Funkcja xor_crypt_string() zawiera parametr określający tryb kodowania i dekodowania, a także wartość ciągu.
Podstawowe funkcje są pobierane za pomocą modułów base64, które wykonują procedurę / operację XOR w celu zaszyfrowania lub odszyfrowania zwykłego tekstu / zaszyfrowanego tekstu.
Note - Szyfrowanie XOR służy do szyfrowania danych i jest trudne do złamania metodą brute-force, to znaczy poprzez generowanie losowych kluczy szyfrujących w celu dopasowania do prawidłowego zaszyfrowanego tekstu.