Krok 1. Przypominamy na czym polega szyfrowania
Jedna z najprostszych metod kryptograficznych - Szyfr Cezara (znany również jako szyfr podstawieniowy).
Krok 2. Program szyfrujący tekst przy użyciu szyfru Cezara
Definiujemy funkcję cezar, która przyjmuje dwa argumenty: massage — tekst do zaszyfrowania oraz key — wartość przesunięcia.
def cezar(massage, key):
Tworzymy zmienną crypt, która będzie zawierać zaszyfrowany tekst.
crypt = ""
Iterujemy przez każdą literę w tekście massage.
for letter in massage:
Sprawdzamy, czy dodanie wartości przesunięcia key do kodu ASCII litery letter przekracza kod ASCII litery 'z'. Jeśli tak, dodajemy do crypt literę, której kod ASCII został przesunięty o key - 26, aby zwrócić się do litery na początku alfabetu i kontynuować przesunięcie.
if ord(letter) + key > ord ('z'):
crypt += chr(ord(letter) + key - 26)
else:
crypt += chr(ord(letter) + key)
Jeśli dodanie wartości przesunięcia key do kodu ASCII litery letter nie przekracza kodu ASCII litery 'z', dodajemy do crypt literę, której kod ASCII został przesunięty o key.
Zwracamy zaszyfrowany tekst.
return crypt
Wywołujemy funkcję cezar z tekstem do zaszyfrowania "sabskrybuj" i wartością przesunięcia 3. Następnie wyświetlamy zaszyfrowany tekst.
print(cezar("sabskrybuj", 3))
Krok 3. Program deszyfrujący tekst przy użyciu szyfru Cezara.
Definiujemy funkcję decezar, która przyjmuje dwa argumenty: massage - zaszyfrowany tekst do odszyfrowania oraz key - wartość przesunięcia:
def decezar(massage, key):
Tworzymy zmienną crypt, która będzie zawierać odszyfrowany tekst.
for letter in massage:
Iterujemy przez każdą literę w zaszyfrowanym tekście massage.
if ord(letter) - key < ord ('a'):
crypt += chr(ord(letter) - key + 26)
Sprawdzamy, czy odjęcie wartości przesunięcia key od kodu ASCII litery letter mniejsze niż kod ASCII litery 'a'. Jeśli tak, dodajemy do crypt literę, której kod ASCII został przesunięty o key - 26, aby zwrócić się do litery na końcu alfabetu i kontynuować przesunięcie.
else:
crypt += chr(ord(letter) - key)
Jeśli odjęcie wartości przesunięcia key od kodu ASCII litery letter nie jest mniejsze niż kod ASCII litery 'a', dodajemy do crypt literę, której kod ASCII został przesunięty o key.
Zwracamy odszyfrowany tekst.
return crypt
Wywołujemy funkcję decezar z zaszyfrowanym tekstem "vdevnubexm" i wartością przesunięcia 3. Następnie wyświetlamy odszyfrowany tekst.
print(decezar("vdevnubexm", 3))
Komentarze
Prześlij komentarz