Imparare a programmare con Python: il manuale per programmatori dai 13 anni in su (Italian Edition) by Maurizio Boscaini

Imparare a programmare con Python: il manuale per programmatori dai 13 anni in su (Italian Edition) by Maurizio Boscaini

autore:Maurizio Boscaini [Boscaini, Maurizio]
La lingua: ita
Format: epub
ISBN: 9788850318056
editore: Apogeo
pubblicato: 2017-05-15T22:00:00+00:00


Figura 7.2 Meccanismo di creazione e apertura di un messaggio cifrato a chiave simmetrica.

Vediamo due esempi di crittografia basati su cifrari a sostituzione.

L’alfabeto farfallino

L’alfabeto farfallino è un gioco per bambini per parlare con un codice segreto. La regola è quella di mettere dopo la vocale una f e ripetere la vocale stessa: a → afa, e → efe,... Un esempio di una frase comune cifrata è: “cifiafaofo, cofomefe stafaifi?” Il nome di questo cifrario deriva dal fatto che il suono che si ottiene, per le parole codificate con questo sistema, è simile a quello della parola “farfalla”.

Di seguito un’implementazione di questa crittografica a sostituzione.

alfabeto_farfallino.py

def cripta_farfallino(messaggio):

"""Dato un messaggio ne ritorna una versione cifrata secondo l'alfabeto

farfallino."""

messaggio_criptato = ""

for car in messaggio:

if car in "aeiou":

messaggio_criptato += car +"f"+ car

elif car in "AEIOU":

messaggio_criptato += car +"F"+ car

else:

# Ricopia così com'è tutto ciò che non è una vocale

messaggio_criptato += car

return messaggio_criptato

def decripta_farfallino(messaggio):

"""Dato un messaggio cifrato ritorna il messaggio originale"""

messaggio_decriptato = messaggio

for codice in ("afa", "efe", "ifi", "ofo", "ufu", "AFA", "EFE", "IFI", "OFO", "UFU"):

vocale = codice[0]

messaggio_decriptato = messaggio_decriptato.replace(codice, vocale)

return messaggio_decriptato

Effettuiamo un test e un controtest, in cui verifichiamo che le due funzioni siano effettivamente una l’inversa dell’altra:

>>> frase = "Effetto farfalla e teoria del caos"

>>> print(cripta_farfallino(frase))

EFEffefettofo fafarfafallafa efe tefeoforifiafa defel cafaofos

>>> print(decripta_farfallino(cripta_farfallino(frase))) # Andata e ritorno

Effetto farfalla e teoria del caos



scaricare



Disconoscimento:
Questo sito non memorizza alcun file sul suo server. Abbiamo solo indice e link                                                  contenuto fornito da altri siti. Contatta i fornitori di contenuti per rimuovere eventuali contenuti di copyright e inviaci un'email. Cancelleremo immediatamente i collegamenti o il contenuto pertinenti.