Decriptarea cifrului Caesar
https://replit.com/@SorinBetisor/cc2-start?v=1
În această lecție, vom continua cu dezvoltarea programului de criptare Caesar Cipher și vom explora procesul de decriptare. Cifrul Caesar este o metodă simplă de criptare a textului, care implică schimbarea fiecărei litere cu o alta litera, care se afla la o anumita distanța de numărul original. În cazul decriptării, ne vom întoarce la textul original folosind aceeași distanță, dar de data aceasta vom merge în direcția opusă.
Să presupunem că avem următorul text criptat: "Xli wlsyph fi x qevhgw, xli xmqi ryxvilevwi, tistpi, mrjsvqexmsr gsqqirx xs irxivw". Dacă știm că a fost criptat cu cifrul Caesar, putem încerca să-l decriptăm. Mai întâi, trebuie să încercăm să găsim distanța de criptare, ceea ce putem face verificând toate cele 25 de posibilități. În acest caz, distanța este de 4.
După ce am găsit distanța, putem să începem să decriptăm textul. În Python, putem face acest lucru prin intermediul următorului cod:
text = "Xli wlsyph fi x qevhgw, xli xmqi ryxvilevwi, tistpi, mrjsvqexmsr gsqqirx xs irxivw"
distance = 4
result = ""
for char in text:
if char.isalpha():
new_char = chr((ord(char) - distance - 65) % 26 + 65)
else:
new_char = char
result += new_char
print(result)
Această metodă de decriptare funcționează în același mod ca și cea de criptare, cu excepția faptului că trebuie să scădem distanța de la poziția inițială a literei, în loc să o adunăm.
În concluzie, decriptarea cifrului Caesar este relativ simplă, mai ales dacă știm deja distanța de criptare. Cu toate acestea, trebuie să fim atenți la unii factori, cum ar fi spațiile sau semnele de punctuație, care nu trebuie decriptate.
Exemple
- Text criptat: "Xlmw irgvctxih kszhvgvih, xlmw irgvctxih xlmw qirxsq, xliq sx xli gviexih" (distanța: 7)
- Text criptat: "Lzw esp ufmlyz hnl hivbaopun jvumpkluaphs, zovd huk opz jvtpzalypaf" (distanța: 12)
- Text criptat: "F xli qerkvih xlmw er tistpi, xli glwmgmrk xs xli lezi, erh xli vmziw xs xli qerkvih" (distanța: 6)