Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Δήλωση μεταβλητών και λήψη εισροών
- Βήμα 2: Δημιουργία νέου αλφαβήτου
- Βήμα 3: Μετατόπιση του μηνύματος
- Βήμα 4: Πρόσθετο
Βίντεο: Πρόγραμμα Caesar Cipher στην Python: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Το 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: Πρόσθετο
Επισυνάπτεται το αρχείο κώδικα.
Συνιστάται:
Πρόγραμμα Python - Σύνθετο ενδιαφέρον με μηνιαίες συνεισφορές/κατάθεση: 5 βήματα
Πρόγραμμα Python - Σύνθετο ενδιαφέρον με μηνιαίες συνεισφορές/κατάθεση: Πρόγραμμα για τον υπολογισμό των σύνθετων τόκων με μηνιαία εισφορά στο τέλος του μήνα. Τύπος που λαμβάνεται από το TheCalculatorSite.com: Σύνθετο ενδιαφέρον για το κεφάλαιο: P (1+r/n)^(nt) Μελλοντική τιμή μιας σειράς: PMT × (((1 + r/n)^nt - 1)/(r/n))
Raspberry Pi, Python και πρόγραμμα οδήγησης Stepper Motor TB6600: 9 βήματα
Raspberry Pi, Python και TB6600 Stepper Motor Driver: Αυτό το εγχειρίδιο ακολουθεί τα βήματα που έκανα για να συνδέσω ένα Raspberry Pi 3b με έναν ελεγκτή Stepper Motor TB6600, ένα τροφοδοτικό 24 VDC και έναν κινητήρα Stepper 6 καλωδίων. Μάλλον είμαι όπως πολλοί από εσάς και τυχαίνει να έχω μια " τσάντα αρπαγής " του υπολοίπου
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: 6 βήματα
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: Έχω δημοσιεύσει πρόσφατα έναν οδηγό που δείχνει έναν οδηγό βήμα προς βήμα για τη σύνδεση ενός κόμβου MSPU ESP8266 με την πλατφόρμα IoT AskSensors. Έλαβα κάποια σχόλια από άτομα που ενδιαφέρονται περισσότερο για την πλατφόρμα AskSensors, αλλά δεν έχουν στο χέρι τους ένα MCU κόμβου. Αυτό εγώ
Πώς να δημιουργήσετε ένα πρόγραμμα αριθμητικής ενσωμάτωσης σε Python: 10 βήματα
Πώς να δημιουργήσετε ένα πρόγραμμα αριθμητικής ενσωμάτωσης σε Python: Αυτό είναι ένα σεμινάριο για το πώς να δημιουργήσετε και να εκτελέσετε ένα πρόγραμμα που θα αξιολογήσει ορισμένα ολοκληρωμένα χρησιμοποιώντας έναν αλγόριθμο αριθμητικής ολοκλήρωσης. Χώρισα τα βήματα σε 3 ενότητες: κατανόηση του αλγορίθμου που θα χρησιμοποιηθεί για την κατασκευή του προγράμματος, κωδικοποίηση
Εμπόδιο στην αποφυγή ρομπότ χρησιμοποιώντας το πρόγραμμα οδήγησης μοτέρ L298n: 5 βήματα
Εμπόδιο αποφυγής ρομπότ με χρήση L298n Motor Driver: γεια σας παιδιά σήμερα θα φτιάξουμε αυτό το ρομπότ .. ελπίζω να το απολαύσετε