Η λειτουργική μονάδα Base64 της Python είναι ένα ισχυρό εργαλείο για την κωδικοποίηση και την αποκωδικοποίηση μηνυμάτων. Μπορείτε να το χρησιμοποιήσετε για να στείλετε δεδομένα με ασφάλεια μέσω Διαδικτύου. Είναι τυπική διαδικασία για ιστότοπους, εφαρμογές και υπηρεσίες επικοινωνίας να χρησιμοποιούν αυτό το είδος κωδικοποίησης για την προστασία ευαίσθητων δεδομένων από εχθρικούς χάκερ.
Η μονάδα Base64 έχει ένα ζεύγος λειτουργιών που μπορείτε να χρησιμοποιήσετε για την κωδικοποίηση και την αποκωδικοποίηση μηνυμάτων, προσθέτοντας κάποια επιπλέον ασφάλεια στις μεταφορές δεδομένων σας.
Η ενότητα Tkinter και Base64
Το Tkinter σάς επιτρέπει να δημιουργείτε εφαρμογές επιφάνειας εργασίας. Προσφέρει μια ποικιλία γραφικών στοιχείων όπως κουμπιά, ετικέτες και πλαίσια κειμένου που διευκολύνουν την ανάπτυξη εφαρμογών χωρίς υπερβολική προσπάθεια. Μπορείτε να δημιουργήσετε απίστευτα προγράμματα GUI με το Tkinter. Μπορείς
κατασκευάστε μια απλή αριθμομηχανή, μια εφαρμογή λίστας υποχρεώσεων ή α παιχνίδι δοκιμής πληκτρολόγησης. Για να εγκαταστήσετε το Tkinter στο σύστημά σας, ανοίξτε το τερματικό σας και πληκτρολογήστε:pip εγκατάσταση tkinter
Το BASE64 παρέχει λειτουργίες για την κωδικοποίηση δυαδικών δεδομένων σε ASCII αποκωδικοποιώντας τα πίσω στο δυαδικό. Υποστηρίζει τόσο τυπική όσο και ασφαλή για URL κωδικοποίηση που καθιστά τη μετάδοση πληροφοριών πιο ασφαλή. Για να μετατρέψετε μια συμβολοσειρά σε χαρακτήρα Base64, λάβετε την τιμή ASCII κάθε χαρακτήρα και υπολογίστε το δυαδικό 8-bit. Μετατρέψτε αυτό το κομμάτι των 6 bit ομαδοποιώντας εκ νέου τα ψηφία και μετατρέποντάς τα ξανά στις αντίστοιχες δεκαδικές τους τιμές. Τέλος, χρησιμοποιήστε τον πίνακα κωδικοποίησης Base64 για να λάβετε τις τιμές Base64 για κάθε δεκαδικό.
Πώς να κωδικοποιήσετε και να αποκωδικοποιήσετε μηνύματα στην Python
Μπορείτε να βρείτε τον πηγαίο κώδικα αυτού του έργου σε αυτό Αποθετήριο GitHub.
Ξεκινήστε εισάγοντας και τις δύο μονάδες. Αρχικοποιήστε την παρουσία Tkinter και εμφανίστε το ριζικό παράθυρο. Ορίστε τον τίτλο, τις διαστάσεις σε pixel και το χρώμα φόντου του παραθύρου.
από tkinter εισαγωγή *
εισαγωγή βάση64
ρίζα = Tk()
root.geometry('750x400')
root.configure (background='aqua')
root.title("Κωδικοποίηση και αποκωδικοποίηση μηνυμάτων με χρήση Python")
Χρησιμοποιήστε τα γραφικά στοιχεία Label για να εμφανίσετε χρήσιμες πληροφορίες σχετικά με την εφαρμογή. Η ετικέτα δέχεται ένα γονικό παράθυρο στο οποίο θέλετε να την τοποθετήσετε, το κείμενο που πρέπει να εμφανίζεται και το στυλ γραμματοσειράς, το χρώμα και το χρώμα του φόντου. Χρήση πακέτο() για να οργανώσετε το γραφικό στοιχείο σε ένα μπλοκ διάταξης πριν το τοποθετήσετε στο γονικό γραφικό στοιχείο. Το StringVar διευκολύνει τον έλεγχο της αξίας ενός γραφικού στοιχείου όπως μια ετικέτα ή μια καταχώριση.
Ετικέτα (ρίζα, κείμενο=«Κωδικοποιητής και αποκωδικοποιητής μηνυμάτων Python», γραμματοσειρά='arial 25 bold', fg='άσπρο', bg="μωβ").πακέτο()
Κείμενο = StringVar()
κλειδί = StringVar()
mode = StringVar()
Αποτέλεσμα = StringVar()
Ορίστε μια συνάρτηση Encode() που δέχεται ένα κλειδί για κωδικοποίηση και αποκωδικοποίηση μαζί με το μήνυμα. Ορίστε μια κενή λίστα και επαναλάβετε μέχρι το μήκος του μηνύματος. Ορίστε τον δείκτη του κλειδιού ως συντελεστή λειτουργίας και αποθηκεύστε την τιμή του στη μεταβλητή key_c. Χρήση ord() για να λάβετε την τιμή Unicode του χαρακτήρα και να χρησιμοποιήσετε chr() για να λάβετε τον χαρακτήρα που αντιπροσωπεύει την καθορισμένη τιμή.
Προσθέστε αυτήν την τιμή στη λίστα. Συνδέστε κάθε στοιχείο της λίστας με μια κενή συμβολοσειρά και χρησιμοποιήστε το encode() μέθοδος για να επιστρέψετε μια κωδικοποιημένη έκδοση utf-8 της συμβολοσειράς. ο base64.urlsafe_b64encode() μέθοδος κωδικοποιεί αυτήν την είσοδο και αντικαθιστά - με + και _ με /.
defΚωδικοποίηση(κλειδί, μήνυμα):
enc = []Για Εγώ σε εύρος (len (μήνυμα)):
key_c = κλειδί[i % len (κλειδί)]
enc.append (chr((ord (message[i]) + ord (key_c)) % 256))
ΕΠΙΣΤΡΟΦΗ base64.urlsafe_b64encode("".join (enc).encode()).decode()
Ορίστε μια συνάρτηση Αποκρυπτογραφώ() που δέχεται ένα κλειδί για κωδικοποίηση και αποκωδικοποίηση μαζί με το μήνυμα. Ορίστε μια κενή λίστα και αποκωδικοποιήστε το μήνυμα. Επαναλάβετε μέχρι το μήκος του μηνύματος και ορίστε το συντελεστή λειτουργίας ως ευρετήριο και αποθηκεύστε την τιμή του στο key_c. Προσθέστε τον χαρακτήρα της αποκωδικοποίησης συμβολοσειράς Unicode όπως φαίνεται παρακάτω. Επιστρέψτε την αποκωδικοποιημένη συμβολοσειρά.
defΑποκρυπτογραφώ(κλειδί, μήνυμα):
δεκ. = []
message = base64.urlsafe_b64decode (message).decode()Για Εγώ σε εύρος (len (μήνυμα)):
key_c = κλειδί[i % len (κλειδί)]
dec.append (chr((256 + ord (μήνυμα[i]) - ord (κλειδί_γ)) % 256))
ΕΠΙΣΤΡΟΦΗ"".join (δεκ.)
Ορίστε μια συνάρτηση Τρόπος() που παίρνει τη λειτουργία που εισήγαγε ο χρήστης στο γραφικό στοιχείο Εισαγωγή και καλεί την κατάλληλη λειτουργία σύμφωνα με την επιλογή. Σε περίπτωση που ο χρήστης δεν εισάγει έγκυρη απάντηση, εμφανίστε ένα μήνυμα σφάλματος.
defΤρόπος():
αν (mode.get() == 'ΜΙ'):
Result.set (Κωδικοποίηση (key.get(), Text.get()))
ελιφ (mode.get() == 'ΡΕ'):
Result.set (Αποκωδικοποίηση (key.get(), Text.get()))
αλλού:
Result.set("Μη έγκυρη λειτουργία")
Ορίστε μια συνάρτηση Εξοδος() να σκοτώσει και να τερματίσει τον διερμηνέα που τρέχει στο παρασκήνιο. Καθορίστε μια συνάρτηση Reset() για να διαγράψετε τα περιεχόμενα του πεδίου Entry.
defΕξοδος():
root.destroy()
defΕπαναφορά():
Text.set("")
key.set("")
mode.set("")
Result.set("")
Καθορίστε τα γραφικά στοιχεία Ετικέτας και Καταχώρισης για Μήνυμα, Κλειδί, Λειτουργία και Κείμενο. Καθορίστε το γονικό παράθυρο στο οποίο θέλετε να τα τοποθετήσετε, το στυλ γραμματοσειράς, το κείμενο και το χρώμα του φόντου. Ορίστε επίσης τις συντεταγμένες για να τις οργανώσετε.
Ετικέτα (ρίζα, γραμματοσειρά='arial 17 bold', κείμενο='Μήνυμα', fg='μαύρος', bg="aqua").τόπος (x=60, y=100)
Καταχώριση (ρίζα, γραμματοσειρά='arial 15', textvariable=Κείμενο, bg='άσπρο').τόπος (x=450, y=100)Ετικέτα (ρίζα, γραμματοσειρά='arial 17 bold', κείμενο='Κλειδί', fg='μαύρος', bg="aqua").τόπος (x=60, y=130)
Καταχώριση (ρίζα, γραμματοσειρά='arial 15', textvariable=key, bg='άσπρο').τόπος (x=450, y=130)Ετικέτα (ρίζα, γραμματοσειρά='arial 17 bold', κείμενο=«Λειτουργία (E-Encode, D-Decode)», fg='μαύρος', bg="aqua").τόπος (x=60, y=160)
Καταχώριση (ρίζα, γραμματοσειρά='arial 15', textvariable=mode, bg='άσπρο').τόπος (x=450, y=160)
Ετικέτα (ρίζα, γραμματοσειρά='arial 17 bold', κείμενο='Κείμενο', fg='μαύρος', bg="aqua").τόπος (x=60, y=190)
Καταχώριση (ρίζα, γραμματοσειρά='arial 15 bold', textvariable=Αποτέλεσμα, bg='άσπρο').τόπος (x=450, y=190)
Ομοίως, ορίστε τρία κουμπιά για να δείτε το αποτέλεσμα, να επαναφέρετε τα πεδία και να σταματήσετε το πρόγραμμα. Τα κουμπιά έχουν μια ειδική παράμετρο που ονομάζεται εντολή που παίρνει μια συνάρτηση και την εκτελεί με το κλικ.
Κουμπί (ρίζα, γραμματοσειρά='arial 15 bold', κείμενο='Αποτέλεσμα', padx=2, bg='Ανοιχτό γκρι', command=Mode).place (x=100, y=240)
Κουμπί (ρίζα, γραμματοσειρά='arial 15 bold', κείμενο='Επαναφορά', πλάτος=6, εντολή=Επαναφορά, bg='Πράσινος', padx=2).τόπος (x=300, y=240)
Κουμπί (ρίζα, γραμματοσειρά='arial 15 bold', κείμενο='Να σταματήσει', πλάτος=6, εντολή=Έξοδος, bg='Το κόκκινο', padx=2, pady=2).τόπος (x=500, y=240)
ο mainloop() Η συνάρτηση λέει στην Python να εκτελέσει τον βρόχο συμβάντων Tkinter και να ακούσει συμβάντα (όπως το πάτημα κουμπιών) μέχρι να κλείσετε το παράθυρο.
root.mainloop()
Ο κωδικοποιητής μηνυμάτων / αποκωδικοποιητής σε δράση
Κατά την εκτέλεση του προγράμματος, το πρόγραμμα εμφανίζει ένα παράθυρο όπου πρέπει να εισαγάγετε ένα μήνυμα, ένα πλήκτρο και μια λειτουργία. Κατά την επιλογή της λειτουργίας κωδικοποίησης με ένα πλήκτρο του 2009, το μήνυμα Κάνουν χρήση του μετατρέπεται σε f8KRwpvCnlLChcKjwp5Sf8KW.
Ομοίως, κατά την αντιγραφή του κωδικοποιημένου μηνύματος και την επικόλληση του στην είσοδο για αποκωδικοποίηση με το ίδιο, λαμβάνετε πίσω το αρχικό μήνυμα.
Κυβερνοασφάλεια με χρήση Python
Μπορείτε να χρησιμοποιήσετε την Python για να γράψετε σενάρια που αυτοματοποιούν τους ελέγχους ασφαλείας, παρακολουθούν δίκτυα και σαρώνουν για τρωτά σημεία. Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε ισχυρές εφαρμογές που χρησιμοποιούν έλεγχο ταυτότητας για να μειώσουν τις πιθανότητες να διακυβεύσει τα δεδομένα σας ένας εισβολέας.
Οι ειδικοί στον τομέα της κυβερνοασφάλειας χρησιμοποιούν συχνά την Python για να δημιουργήσουν τείχη προστασίας διαδικτυακών εφαρμογών για την παρακολούθηση μιας εφαρμογής. Μπορούν να εκτελέσουν ανάλυση ανίχνευσης απειλών χρησιμοποιώντας τη Μηχανική Μάθηση. Με αυτήν την αρχιτεκτονική, είναι πολύ πιο εύκολο να δημιουργήσετε προσαρμοσμένες δοκιμές διείσδυσης και να επικυρώσετε πρωτόκολλα ασφαλείας.