Sommario:
- Forniture
- Passaggio 1: dichiarazione delle variabili e acquisizione degli input
- Passaggio 2: creazione del nuovo alfabeto
- Passaggio 3: spostare il messaggio
- Passaggio 4: aggiuntivo
Video: Programma Caesar Cipher in Python: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Il Caesar Cipher è un cifrario antico e ampiamente utilizzato che è facile da crittografare e decifrare. Funziona spostando le lettere dell'alfabeto per creare un alfabeto completamente nuovo (ABCDEF potrebbe spostarsi di 4 lettere e diventerebbe EFGHIJ).
I cifrari Caesar non sono i cifrari più sicuri in circolazione, ma sono utili per piccoli compiti come passare note segrete o rendere le password un po' più forti. È davvero facile decifrare il codice, ma può essere noioso crittografarne uno se non hai memorizzato l'alfabeto speciale.
Per rendere questo processo più semplice, possiamo usare la potenza dei computer, in particolare il linguaggio di programmazione Python.
Questo Instructable ti mostrerà come creare un programma che converte i messaggi in un codice al tuo comando.
Forniture
Tutto ciò di cui hai bisogno è un interprete Python: IDLE, Pycharm e Thonny sono alcune buone opzioni gratuite (ho usato Pycharm)
Conoscenza base di Python
Passaggio 1: dichiarazione delle variabili e acquisizione degli input
Per memorizzare effettivamente i valori stringa (testo) dell'alfabeto, del messaggio, dello spostamento, ecc., è necessario utilizzare le variabili. Iniziamo dichiarando le variabili 'alphabet', 'partialOne', 'partialTwo' e 'newAlphabet'. Ho scritto i nomi delle variabili in Camel Case nel mio codice (la prima parola è minuscola e la seconda maiuscola) ma puoi scriverla come vuoi, purché ti ricordi di cambiarla anche nel resto del codice. La variabile alfabetica ha il valore "abcdefghijklmnopqrstuvwxyz". Tutte le altre variabili sono impostate su "", che è una stringa vuota poiché non abbiamo ancora i loro valori.
Quello che sta facendo è impostare il sistema parziale, che è quello che stiamo usando per creare effettivamente il cambiamento. Questo verrà spiegato in un passaggio successivo.
Dopo questo, dobbiamo ottenere il messaggio e spostare il valore dall'utente. Usiamo la funzione di input per farlo. Questa parte del codice richiede all'utente un messaggio e un numero per spostare l'alfabeto.
CODICE:
alfabeto = "abcdefghijklmnopqrstuvwxyz"
parzialeUno=""
parzialeDue=""
newAlphabet=""
message = input("Inserisci il messaggio che vuoi tradurre: ").lower()
key = int(input("Inserisci il numero che vuoi spostare di: "))
Passaggio 2: creazione del nuovo alfabeto
Ora per creare l'alfabeto spostato. Per fare ciò, utilizzeremo il sistema parziale. Il sistema parziale è dove il computer divide l'alfabeto in due parziali (un modo elegante per dire parti). Il primo parziale è comunque lungo che hai detto al programma di passare, e il secondo è il resto. Il computer cambia i parziali. Questo è esattamente ciò che sta facendo il codice, insieme alla prima istruzione, che dice che se lo spostamento è 0, il nuovo alfabeto e il vecchio alfabeto sono gli stessi poiché non stai cambiando nulla.
Per esempio:
Sequenza - 123456789
Uno parziale - 123; Parziale Due - 456789
Nuova sequenza - 456789123
CODICE:
se chiave == 0:
newAlphabet = alfabeto
tasto elif > 0:
parzialeUno = alfabeto[:chiave]
parzialeDue = alfabeto[chiave:]
nuovoAlfabeto =parzialeDue +parzialeUno
altro:
parzialeUno = alfabeto[:(26 + chiave)]
parzialeDue = alfabeto[(26 + chiave):]
nuovoAlfabeto =parzialeDue +parzialeUno
Passaggio 3: spostare il messaggio
Ora abbiamo il nostro alfabeto e il nuovo alfabeto. Non resta che convertire il messaggio nel codice.
Per prima cosa, impostiamo una nuova variabile e la chiamiamo 'crittografata' e la impostiamo su "". Quindi scriviamo un ciclo for davvero complicato che controlla ogni lettera nel messaggio e la passa alla nuova lettera. Emette il risultato e il gioco è fatto, un codice convertito con successo!
CODICE:
criptato=""per message_index in range(0, len(message)):
if messaggio[indice_messaggio] == " ":
criptato+= ""
per Alphabet_index in range(0, len(newAlphabet)):
if messaggio[indice_messaggio] == alfabeto[indice_alfabetico]:
criptato+= nuovoAlphabet[alphabet_index]
stampa (crittografato)
Passaggio 4: aggiuntivo
In allegato il file del codice.
Consigliato:
Programma il tuo gioco 2048 con Java!: 8 passaggi
Programma il tuo gioco 2048 W/Java!: Adoro il gioco 2048. E così ho deciso di programmare la mia versione. È molto simile al gioco vero e proprio, ma programmarlo da solo mi dà la libertà di cambiare quello che voglio ogni volta che voglio. Se voglio un gioco 5x5 invece del tipico 4x4, un s
Programma base C++: 11 passaggi
Programma base C++: in questo programma imparerai le basi del c++ codificando un semplice programma c++ per creare più utenti e visualizzare questi utenti, spero ti piaccia
Programma Python - Interesse cumulativo CON contributi/depositi mensili: 5 passaggi
Programma Python - Interesse composto CON Contributi/Deposito mensili: Programma per calcolare l'interesse composto con contributo mensile alla fine del mese. Formula tratta da TheCalculatorSite.com: Interesse composto per capitale: P(1+r/n)^(nt) Valore futuro di una serie: PMT × (((1 + r/n)^nt - 1) / (r/n))
Come realizzare un programma di integrazione numerica in Python: 10 passaggi
Come creare un programma di integrazione numerica in Python: questo è un tutorial su come creare ed eseguire un programma che valuterà integrali definiti utilizzando un algoritmo di integrazione numerica. Ho diviso i passaggi in 3 sezioni: capire l'algoritmo che verrà utilizzato per realizzare il programma, codificare il
Bill Cipher Pyramid Speaker: 9 passaggi (con immagini)
Bill Cipher Pyramid Speaker: Questo progetto è ispirato al design piramidale di Bill Cipher dallo spettacolo Gravity Falls ed è stato creato per Design Technology Class. Attualmente il prodotto è incompiuto e questo serve come piano di produzione. La pagina verrà aggiornata quando il prodotto