Η κρυπτογράφηση κωδικού πρόσβασης καλύπτει τους κωδικούς πρόσβασης των χρηστών, ώστε να είναι δύσκολο να μαντέψουν ή να αποκωδικοποιήσουν. Είναι ένα ουσιαστικό βήμα για την ανάπτυξη ασφαλούς λογισμικού βάσης χρήστη. Είτε δημιουργείτε ένα με το Flask είτε ένα άλλο ελαφρύ Python Framework, δεν μπορείτε να αγνοήσετε αυτό το βήμα. Εκεί μπαίνει το bcrypt.

Θα σας δείξουμε πώς να χρησιμοποιείτε το bcrypt για να κατακερματίσετε τον κωδικό πρόσβασής σας στην Python.

Πώς λειτουργεί το bcrypt

Το Bcrypt είναι μια βιβλιοθήκη κατακερματισμού αγνωστικών γλωσσών που προσφέρει μοναδική κρυπτογράφηση κωδικού πρόσβασης. Κατά την κρυπτογράφηση της συμβολοσειράς σας, δημιουργεί επιπλέον τυχαίους χαρακτήρες (salt) από προεπιλογή για να ενισχύσει την ασφάλεια του κωδικού πρόσβασής σας.

Προαιρετικά, μπορείτε επίσης να καθορίσετε τον αριθμό των επιπλέον χαρακτήρων που θέλετε να προσθέσετε σε μια εισερχόμενη συμβολοσειρά.

Η βιβλιοθήκη Thebcrypt δεν διαβάζει ακατέργαστες συμβολοσειρές — μόνο κώδικα byte. Έτσι, για να ξεκινήσετε, θα κωδικοποιήσετε πρώτα μια εισερχόμενη συμβολοσειρά κωδικού πρόσβασης πριν τη περάσετε στο bcrypt για κρυπτογράφηση.

instagram viewer

Η κωδικοποίηση δεν είναι το ίδιο με την κρυπτογράφηση. Διασφαλίζει μόνο ότι μια συμβολοσειρά γίνεται αναγνώσιμη από μηχανή προτού μπορέσει να την κρύψει ένας αλγόριθμος κρυπτογράφησης.

Κρυπτογράφηση κωδικού πρόσβασης σε Python με bcrypt

Η κρυπτογράφηση κωδικού πρόσβασης bcrypt είναι εύκολη με την Python. Θα εστιάσουμε στο πώς να το κάνουμε αυτό χωρίς να χρησιμοποιήσουμε πλαίσιο. Αλλά μην ανησυχείτε, ακολουθεί την ίδια διαδικασία σε πλαίσια αφού μάθετε πώς να αποθηκεύετε τις εισαγωγές των χρηστών σας και να τις διαβάζετε από τη βάση δεδομένων.

Εγκαταστήστε και ρυθμίστε το bcrypt

Αν δεν το έχετε κάνει ήδη, ενεργοποιήστε ένα εικονικό περιβάλλον Python στη ρίζα του έργου σας. Στη συνέχεια εγκαταστήστε το bcrypt χρησιμοποιώντας κουκούτσι:

pip εγκατάσταση bcrpyt

Ξεκινήστε την κρυπτογράφηση κωδικών πρόσβασης

Αφού εγκατασταθεί, ας δούμε πώς να κρυπτογραφήσετε μια συμβολοσειρά χρησιμοποιώντας το bcrypt:

# Εισαγωγή bcrypt:
εισαγωγή bcrypt
κωδικός πρόσβασης = "mypasswordstring"
# Κωδικοποιήστε τον κωδικό πρόσβασης σε έναν ευανάγνωστο κωδικό utf-8 byte:
password = password.encode('utf-8')
# Κατακερματίστε τον κωδικοποιημένο κωδικό πρόσβασης και δημιουργήστε ένα αλάτι:
hashedPassword = bcrypt.hashpw (password, bcrypt.gensalt())
εκτύπωση (κατακερματισμένος κωδικός πρόσβασης)

Οταν εσύ εκτελέστε τον κώδικα Python παραπάνω, εκτυπώνει μια κρυπτογραφημένη συμβολοσειρά byte. Η έξοδος, ωστόσο, αλλάζει κάθε φορά που εκτελείτε το σενάριο. Αυτός είναι ο τρόπος με τον οποίο το bcrypt διασφαλίζει ότι κάθε χρήστης έχει έναν μοναδικά κρυπτογραφημένο κωδικό πρόσβασης.

Παρεμπιπτόντως, πρόκειται για κρυπτογράφηση κωδικού πρόσβασης.

Πώς να συγκρίνετε και να επιβεβαιώσετε τους κωδικούς πρόσβασης με το bcrypt

Τι γίνεται αν θέλετε να αποθηκεύσετε τον κατακερματισμένο κωδικό πρόσβασης και να επιβεβαιώσετε αργότερα ότι ταιριάζει με τον κωδικό πρόσβασης που παρέχεται από έναν χρήστη κατά τον έλεγχο ταυτότητας;

Αυτό είναι εύκολο. Χρειάζεται μόνο να συγκρίνετε τον κωδικό πρόσβασης ελέγχου ταυτότητας με αυτόν που είναι αποθηκευμένος στη βάση δεδομένων (ή στη μνήμη σε αυτήν την περίπτωση).

Και επειδή το bcrypt διαβάζει μόνο συμβολοσειρές byte, θα χρειαστεί επίσης να κωδικοποιήσετε τον κωδικό πρόσβασης ελέγχου ταυτότητας πριν τον συγκρίνετε με αυτόν στη βάση δεδομένων. Στην ουσία, θα διασταυρώσετε μια κωδικοποιημένη είσοδο ελέγχου ταυτότητας με τον κωδικοποιημένο κατακερματισμένο κωδικό πρόσβασης που είναι ήδη αποθηκευμένος στη βάση δεδομένων σας.

Χρησιμοποιώντας εικονικές εισόδους Python, ας δούμε πώς λειτουργεί στην πράξη:

εισαγωγή bcrypt
#αποθηκεύστε τον κωδικό πρόσβασής σας:
κωδικός πρόσβασης = str (input("input password:"))
# Κωδικοποιήστε τον αποθηκευμένο κωδικό πρόσβασης:
password = password.encode('utf-8')
# Κρυπτογραφήστε τον αποθηκευμένο κωδικό πρόσβασης:
hashed = bcrypt.hashpw (password, bcrypt.gensalt (10))
# Δημιουργήστε ένα πεδίο εισαγωγής κωδικού πρόσβασης ελέγχου ταυτότητας για να ελέγξετε εάν ο χρήστης εισάγει τον σωστό κωδικό πρόσβασης:
check = str (input("check password:"))
# Κωδικοποιήστε επίσης τον κωδικό πρόσβασης ελέγχου ταυτότητας:
check = check.encode('utf-8')
# Χρησιμοποιήστε συνθήκες για να συγκρίνετε τον κωδικό πρόσβασης ελέγχου ταυτότητας με τον αποθηκευμένο:
εάν bcrypt.checkpw (έλεγχος, κατακερματισμένος):
εκτύπωση ("επιτυχία σύνδεσης")
αλλού:
εκτύπωση ("λανθασμένος κωδικός πρόσβασης")

Ο παραπάνω κωδικός σας ζητά να εισαγάγετε έναν νέο κωδικό πρόσβασης όταν τον εκτελείτε. Η Python το αποθηκεύει στη μνήμη. Στη συνέχεια, θα παρέχετε τον ίδιο κωδικό πρόσβασης (γνωστός μόνο σε εσάς) στο πεδίο ελέγχου ταυτότητας.

Η Python εκτυπώνει ένα μήνυμα επιτυχίας εάν ο συγκριτικός κωδικός πρόσβασης ταιριάζει με τον προηγουμένως αποθηκευμένο κρυπτογραφημένο. Διαφορετικά, βγάζει το αποτυχημένο μήνυμα που είναι τυλιγμένο στο αλλού δήλωση:

Η όλη ιδέα είναι η ίδια με την αποθήκευση ενός κωδικού πρόσβασης σε μια βάση δεδομένων κατά την εγγραφή και την παροχή του αργότερα κατά τον έλεγχο ταυτότητας.

Κλιμάκωση κρυπτογράφησης Με το bcrypt

Ενώ δείξαμε μόνο πώς λειτουργεί το bcrypt αποθηκεύοντας κρυπτογραφημένους κωδικούς πρόσβασης σε απλή σύντομη μνήμη Python, η τελική χρήση του είναι σε πραγματικές εφαρμογές που βασίζονται σε χρήστες.

Ωστόσο, αυτό το σεμινάριο δείχνει τους θεμελιώδεις τρόπους δομής του κώδικά σας για να το πετύχετε αυτό, ακόμη και σε σενάρια πραγματικής ζωής. Για παράδειγμα, εάν χρησιμοποιείτε το Flask, μπορείτε να αντικαταστήσετε τις εισόδους με ξεχωριστές φόρμες ιστού για την εξυπηρέτηση των πεδίων εγγραφής και ελέγχου ταυτότητας. Και φυσικά, θα αποθηκεύετε κρυπτογραφημένους κωδικούς πρόσβασης σε μια πραγματική βάση δεδομένων και θα διαβάζετε από αυτήν όταν συγκρίνετε κωδικούς πρόσβασης.

12 βασικοί όροι κρυπτογράφησης που πρέπει να γνωρίζουν όλοι μέχρι τώρα

Όλοι μιλούν για κρυπτογράφηση, αλλά βρίσκεστε χαμένοι ή μπερδεμένοι; Ακολουθούν ορισμένοι βασικοί όροι κρυπτογράφησης που πρέπει να γνωρίζετε.

Διαβάστε Επόμενο

ΜερίδιοΤιτίβισμαΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Σχετικά θέματα
  • Προγραμματισμός
  • Πύθων
  • Προγραμματισμός
  • Ασφάλεια
Σχετικά με τον Συγγραφέα
Idowu Omisola (Δημοσιεύτηκαν 116 άρθρα)

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

Περισσότερα από τον Idowu Omisola

Εγγραφείτε στο ενημερωτικό μας δελτίο

Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε