Πίνακας περιεχομένων:

Πρόγραμμα Caesar Cipher στην Python: 4 βήματα
Πρόγραμμα Caesar Cipher στην Python: 4 βήματα

Βίντεο: Πρόγραμμα Caesar Cipher στην Python: 4 βήματα

Βίντεο: Πρόγραμμα Caesar Cipher στην Python: 4 βήματα
Βίντεο: #ceasarcipher #python #encryption #decryption 2024, Νοέμβριος
Anonim
Πρόγραμμα Caesar Cipher στην Python
Πρόγραμμα Caesar Cipher στην Python

Το Caesar Cipher είναι ένας αρχαίος και ευρέως χρησιμοποιούμενος κρυπτογράφος που είναι εύκολο να κρυπτογραφηθεί και να αποκρυπτογραφηθεί. Λειτουργεί μετατοπίζοντας τα γράμματα του αλφαβήτου για να δημιουργήσει ένα εντελώς νέο αλφάβητο (το ABCDEF θα μπορούσε να μετατοπίσει πάνω από 4 γράμματα και θα γίνει EFGHIJ).

Οι Caesar Ciphers δεν είναι οι πιο ασφαλείς κρυπτογράφηση, αλλά είναι καλές για μικρές εργασίες, όπως η μετάδοση μυστικών σημειώσεων ή η ενίσχυση των κωδικών πρόσβασης. Είναι πραγματικά εύκολο να αποκρυπτογραφήσετε τον κώδικα, αλλά μπορεί να είναι κουραστικό να κρυπτογραφήσετε έναν αν δεν έχετε απομνημονεύσει το ειδικό αλφάβητο.

Για να διευκολύνουμε αυτήν τη διαδικασία, μπορούμε να χρησιμοποιήσουμε τη δύναμη των υπολογιστών, πιο συγκεκριμένα της γλώσσας προγραμματισμού Python.

Αυτό το Instructable θα σας δείξει πώς να δημιουργήσετε ένα πρόγραμμα που μετατρέπει τα μηνύματα σε κρυπτογράφηση με εντολή σας.

Προμήθειες

Το μόνο που χρειάζεστε είναι ένας διερμηνέας Python: το IDLE, το Pycharm και το Thonny είναι μερικές καλές, δωρεάν επιλογές (χρησιμοποίησα το Pycharm)

Βασικές γνώσεις Python

Βήμα 1: Δήλωση μεταβλητών και λήψη εισροών

Δήλωση μεταβλητών και λήψη εισροών
Δήλωση μεταβλητών και λήψη εισροών

Για να αποθηκεύσουμε πραγματικά τις τιμές συμβολοσειράς (κειμένου) του αλφαβήτου, του μηνύματος, της αλλαγής κ.λπ., πρέπει να χρησιμοποιήσουμε μεταβλητές. Ξεκινάμε δηλώνοντας τις μεταβλητές «αλφάβητο», «partialOne», «partialTwo» και «newAlphabet». Έχω γράψει τα ονόματα των μεταβλητών στην περίπτωση Camel στον κωδικό μου (η πρώτη λέξη είναι πεζά και δεύτερη κεφαλαία) αλλά μπορείτε να τη γράψετε όπως θέλετε, αρκεί να θυμάστε να την αλλάξετε και στον υπόλοιπο κώδικα Το Η αλφαβητική μεταβλητή έχει την τιμή "abcdefghijklmnopqrstuvwxyz". Όλες οι άλλες μεταβλητές έχουν οριστεί σε "", το οποίο είναι μια κενή συμβολοσειρά καθώς δεν έχουμε ακόμη τις τιμές τους.

Αυτό που κάνει είναι η δημιουργία του μερικού συστήματος, το οποίο χρησιμοποιούμε για να δημιουργήσουμε πραγματικά τη μετατόπιση. Αυτό θα εξηγηθεί σε επόμενο βήμα.

Μετά από αυτό, πρέπει να λάβουμε το μήνυμα και να αλλάξουμε την τιμή από τον χρήστη. Χρησιμοποιούμε τη συνάρτηση εισόδου για να το κάνουμε αυτό. Αυτό το μέρος του κώδικα ζητά από το χρήστη ένα μήνυμα και έναν αριθμό για να αλλάξει το αλφάβητο.

ΚΩΔΙΚΑΣ:

αλφάβητο = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

partialTwo = ""

newAlphabet = ""

μήνυμα = εισαγωγή ("Παρακαλώ εισάγετε το μήνυμα που θέλετε να μεταφράσετε:").lower ()

κλειδί = int (εισαγωγή ("Παρακαλώ εισάγετε τον αριθμό που θέλετε να αλλάξετε κατά:")

Βήμα 2: Δημιουργία νέου αλφαβήτου

Δημιουργία νέου αλφαβήτου
Δημιουργία νέου αλφαβήτου

Τώρα για να δημιουργήσετε το μετατοπισμένο αλφάβητο. Για να γίνει αυτό, θα χρησιμοποιήσουμε το μερικό σύστημα. Το μερικό σύστημα είναι όπου ο υπολογιστής χωρίζει το αλφάβητο σε δύο μέρη (ένας φανταχτερός τρόπος να πούμε μέρη). Το πρώτο μέρος είναι ωστόσο πολύ καιρό που είπατε στο πρόγραμμα να αλλάξει και το δεύτερο είναι το υπόλοιπο. Ο υπολογιστής αλλάζει τα τμηματικά. Αυτό ακριβώς κάνει ο κώδικας, μαζί με την πρώτη δήλωση, η οποία λέει ότι εάν η μετατόπιση είναι 0, το νέο αλφάβητο και το παλιό αλφάβητο είναι τα ίδια αφού δεν αλλάζετε τίποτα.

Για παράδειγμα:

Ακολουθία - 123456789

Partial One - 123; Μερικό Δεύτερο - 456789

Νέα ακολουθία - 456789123

ΚΩΔΙΚΑΣ:

αν κλειδί == 0:

newAlphabet = αλφάβητο

κλειδί elif> 0:

partialOne = αλφάβητο [: κλειδί]

partialTwo = αλφάβητο [κλειδί:]

newAlphabet = partialTwo + partialOne

αλλού:

partialOne = αλφάβητο [:(26 + κλειδί]

partialTwo = αλφάβητο [(26 + κλειδί):]

newAlphabet = partialTwo + partialOne

Βήμα 3: Μετατόπιση του μηνύματος

Μετατόπιση του Μηνύματος
Μετατόπιση του Μηνύματος

Τώρα έχουμε το αλφάβητό μας και το νέο αλφάβητο. Το μόνο που απομένει είναι να αλλάξετε το μήνυμα στον κώδικα.

Αρχικά, ορίζουμε μια νέα μεταβλητή και την αποκαλούμε «κρυπτογραφημένη» και την θέτουμε σε "". Στη συνέχεια, γράφουμε έναν πολύ περίπλοκο βρόχο που ελέγχει κάθε γράμμα στο μήνυμα και το αλλάζει στο νέο γράμμα. Εξάγει το αποτέλεσμα και εκεί το έχετε, έναν επιτυχημένο κώδικα που μετατράπηκε!

ΚΩΔΙΚΑΣ:

κρυπτογραφημένη = "" για message_index στην περιοχή (0, len (μήνυμα)):

αν το μήνυμα [message_index] == "":

κρυπτογραφημένη+= ""

για alphabet_index στο εύρος (0, len (newAlphabet)):

εάν το μήνυμα [message_index] == αλφάβητο [alphabet_index]:

κρυπτογραφημένη+= newAlphabet [alphabet_index]

εκτύπωση (κρυπτογραφημένο)

Βήμα 4: Πρόσθετο

Πρόσθετος
Πρόσθετος
Πρόσθετος
Πρόσθετος

Επισυνάπτεται το αρχείο κώδικα.

Συνιστάται: