Codifica 1
Dal Piaz
Gdo#Sld}
Osserva
- Ogni carattere del messaggio in chiaro viene sostituito con il carattere 3 posizioni più avanti
- I caratteri non alfabetici e le ultime lettere dell’alfabeto diventano caratteri strani
def cesare(m):
mm = ""
for c in m:
mm += chr(ord(c)+3)
return mm
Decodifica
def cesare_(m):
mm = ""
for c in m:
mm += chr(ord(c)-3)
return mm
Codifica 2
Dal Piaz
Gdo Sldc
Osserva
- Le lettere maiuscole e le lettere minuscole crescono di 3 posizioni: delta=delta+3
- Se si supera la lettera Z (z) si ricomincia dalla A (a): delta=delta%26
- Tutti gli altri caratteri rimangono inalterati
def cesare(m):
ord_a = ord('a')
ord_A = ord('A')
mm = ""
for c in m:
if(c >= 'A') and (c <= 'Z'):
delta = ord(c)-ord_A
delta = (delta+3)%26
c = chr(ord('A')+delta)
elif(c >= 'a') and (c <= 'z'):
delta = ord(c)-ord_a
delta = (delta+3)%26
c = chr(ord('a')+delta)
mm += c
return mm
Codifica 3
Due stringhe contengono ordinatamente le lettere corrispondenti alla cifratura
# ABCDEFGHIJKLMNOPQRSTUVWXYZ Originale
UPPER = "DEFGHIJKLMNOPQRSTUVWXYZABC" # Codificato
# abcdefghijklmnopqrstuvwxyz Originale
LOWER = "defghijklmnopqrstuvwxyzabc" # Codificato
def cesare(m):
ord_a = ord('a')
ord_A = ord('A')
mm = ""
for c in m:
if(c >= 'A') and (c <= 'Z'):
c = UPPER[ord(c)-ord_A]
elif(c >= 'a') and (c <= 'z'):
c = LOWER[ord(c)-ord_a]
mm += c
return mm