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