Commit iniziale con codice di base funzionante.
This commit is contained in:
commit
4015b7bfc2
22
cifra.py
Normal file
22
cifra.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
import string, sys
|
||||||
|
|
||||||
|
def cifra(testo, rotazione = 5):
|
||||||
|
risultato = ''
|
||||||
|
for i in testo.upper():
|
||||||
|
if not i in string.ascii_uppercase:
|
||||||
|
risultato = risultato + i
|
||||||
|
continue
|
||||||
|
indice_c = string.ascii_uppercase.index(i)
|
||||||
|
parziale = indice_c + rotazione
|
||||||
|
if parziale > len(string.ascii_uppercase):
|
||||||
|
parziale = parziale % len(string.ascii_uppercase)
|
||||||
|
|
||||||
|
risultato += string.ascii_uppercase[parziale]
|
||||||
|
|
||||||
|
return risultato
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print cifra(sys.argv[1].upper(), 5)
|
40
decifra.py
Normal file
40
decifra.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
from string import ascii_uppercase as maiuscole
|
||||||
|
|
||||||
|
def decifra(testo, rotazione = 5):
|
||||||
|
"""Decifra una stringa cifrata con algoritmo ROTx."""
|
||||||
|
|
||||||
|
# Preparo una variabile vuota per riportare il risultato
|
||||||
|
risultato = ''
|
||||||
|
|
||||||
|
# Eseguo tante istruzioni per ciascuna lettera del testo criptato
|
||||||
|
for i in testo.upper():
|
||||||
|
|
||||||
|
if not i in maiuscole:
|
||||||
|
# Se non è una lettera, riporto il risultato tale e quale
|
||||||
|
risultato = risultato + i
|
||||||
|
# Poi passo alla prossima lettera
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Trovo l'indice della singola lettera
|
||||||
|
indice_c = maiuscole.index(i)
|
||||||
|
# Inverto la cifratura: se ho spostato in avanti di x, ora sposto
|
||||||
|
# indietro di x
|
||||||
|
parziale = indice_c - rotazione
|
||||||
|
|
||||||
|
# Se però l'indice parziale è meno di zero, correggo per farlo
|
||||||
|
# diventare un numero positivo.
|
||||||
|
if parziale < 0:
|
||||||
|
parziale = parziale + len(maiuscole)
|
||||||
|
|
||||||
|
# Infine, riporto la lettera spostata indietro
|
||||||
|
risultato = risultato + maiuscole[parziale]
|
||||||
|
|
||||||
|
# Riporto il risultato
|
||||||
|
return risultato
|
||||||
|
|
||||||
|
# Usare in questa maniera:
|
||||||
|
testo = 'HNFT F YZYYN!'
|
||||||
|
print decifra(testo, 5)
|
Loading…
Reference in New Issue
Block a user