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

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

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

Διαφορετικοί κανόνες για τον ορισμό ισχυρών κωδικών πρόσβασης

Μερικοί ισχυροί κανόνες κωδικού πρόσβασης που μπορείτε να σκεφτείτε να εφαρμόσετε είναι:

  1. Ο κωδικός πρόσβασης πρέπει να αποτελείται από τουλάχιστον 12 χαρακτήρες. Όσο μεγαλύτερος είναι ο κωδικός πρόσβασης, τόσο λιγότερες είναι οι πιθανότητες να τον διακυβεύσει μια επίθεση ωμής βίας.
  2. Ο κωδικός πρόσβασης πρέπει να περιέχει έναν συνδυασμό πεζών γραμμάτων, κεφαλαίων γραμμάτων, αριθμών και ειδικών χαρακτήρων.
  3. Αποφύγετε την επανάληψη χαρακτήρων στον κωδικό πρόσβασης.
  4. Δεν πρέπει να περιέχει προσωπικά στοιχεία όπως ονόματα, αριθμούς τηλεφώνου ή οτιδήποτε μπορεί εύκολα να μαντέψει κάποιος.
  5. Δεν θα πρέπει να είναι μια κοινή λέξη λεξικού, αν και μπορείτε να χρησιμοποιήσετε λέξεις σε μεγαλύτερες φράσεις κωδικού πρόσβασης.
  6. Ο κωδικός πρόσβασης δεν πρέπει να είναι ο ίδιος για πολλούς λογαριασμούς. Μπορείς ρυθμίστε έναν διαχειριστή κωδικών πρόσβασης για αυτόματη συμπλήρωση διαφορετικών κωδικών πρόσβασης για διάφορους ιστότοπους χωρίς να θυμάστε τον καθένα από αυτούς.

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

Πώς να ελέγξετε την ισχύ του κωδικού πρόσβασής σας χρησιμοποιώντας Python

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

Μπορείτε επίσης να χρησιμοποιήσετε το getpass μονάδα για την απόκρυψη ενός κωδικού πρόσβασης καθώς ο χρήστης τον εισάγει. Αυτό βοηθά στην προστασία του κωδικού πρόσβασής σας όταν πρέπει να τον πληκτρολογήσετε δημόσια. Για να εγκαταστήσετε το getpass στο τοπικό σας περιβάλλον, ανοίξτε ένα τερματικό και πληκτρολογήστε:

κουκούτσι εγκαθιστώ getpass4

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

Χρησιμοποιήστε τη λέξη-κλειδί def για να ορίσετε μια συνάρτηση με το όνομα check_password_strength() και περάστε τον κωδικό πρόσβασης που θα αποκτήσετε ως παράμετρο σε αυτό.

Αρχικοποιήστε έξι μεταβλητές: χαμηλότερο_αριθμό_άλφα, upper_alpha_count, αριθμός_αριθμός, special_char_count, μήκος, κοινός στο μηδέν. Αυτά θα ελέγχουν την παρουσία πεζού αλφαβήτου, κεφαλαίων γραμμάτων, ψηφίων, ειδικών χαρακτήρων, μήκους, επανάληψης χαρακτήρων σε έναν κωδικό πρόσβασης.

Περάστε τον κωδικό πρόσβασης που λαμβάνετε από τον χρήστη στο λίστα() λειτουργία για να το μετατρέψετε σε λίστα χαρακτήρων. Χρησιμοποιώντας τον βρόχο for, επαναλάβετε κάθε χαρακτήρα της λίστας. Χρησιμοποιήστε τη δήλωση if-else για να ελέγξετε εάν ο χαρακτήρας είναι πεζό αλφάβητο, κεφαλαίο αλφάβητο, αριθμός ή ειδικός χαρακτήρας και ενημερώστε το πλήθος αντίστοιχα.

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

εισαγωγή σειρά
εισαγωγή συλλογές

defcheck_password_strength(Κωδικός πρόσβασης):
low_alpha_count = upper_alpha_count = number_count = special_char_count = μήκος = κοινό = 0

Για char in λίστα(Κωδικός πρόσβασης):
αναπανθρακώνω σε string.ascii_lowcase:
low_alpha_count += 1
ελιφ απανθρακώνω σε string.ascii_uppercase:
upper_alpha_count += 1
ελιφ απανθρακώνω σε συμβολοσειρά.ψηφία:
αριθμός_αριθμός += 1
αλλού:
special_char_count += 1

Θα χρειαστείτε μια λίστα κωδικών πρόσβασης ή μια βάση δεδομένων για να ελέγξετε εάν ο κωδικός πρόσβασης του χρήστη είναι κοινός. Μπορείτε να κάνετε λήψη μιας λίστας με ένα εκατομμύριο πιο δημοφιλείς κωδικούς πρόσβασης από Το αποθετήριο Common-Credential GitHub των SecLists.

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

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

μεΆνοιξε("common_password_list.txt", 'ρ') όπως καιαρχείο:
περιεχόμενο = file.read()

εάν ο κωδικός πρόσβασης δεν είναι στο περιεχόμενο:
κοινό += 1

Για να ελέγξετε το μήκος του κωδικού πρόσβασης, απλώς περάστε τον στο len () συνάρτηση και ελέγξτε αν είναι μεγαλύτερο ή ίσο με δώδεκα. Εάν ναι, αυξήστε την τιμή της μεταβλητής μήκους.

ανλεν(Κωδικός πρόσβασης) >= 12:
μήκος += 1

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

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

 countOfWords = συλλογές. Μετρητής (κωδικός πρόσβασης)
επαναλαμβανόμενο = [i για i σε countOfWords αν countOfWords[i] > 1]

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

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

 δύναμη = 0

αν low_alpha_count >= 1:
δύναμη += 1

αν upper_alpha_count >= 1:
δύναμη += 1

αν αριθμός_μετρητής >= 1:
δύναμη += 1

αν special_char_count >= 1:
δύναμη += 1

αν μήκος == 1:
δύναμη += 1

αν κοινό == 1:
δύναμη += 1

ανλεν(αλλεπάλληλος)== 0:
δύναμη += 1

Χρησιμοποιήστε τη συμβολοσειρά πολλών γραμμών (τρία εισαγωγικά) για να εμφανίσετε πολλές γραμμές κειμένου σε μία μόνο πρόταση εκτύπωσης. Χρησιμοποιήστε την κυριολεκτική παρεμβολή Sring ή f-strings ή για να εμφανίσετε το πλήθος των χαρακτηριστικών. Μπορείτε να το πετύχετε γράφοντας φά στην αρχή της συμβολοσειράς στην πρόταση εκτύπωσης και περικλείστε τις μεταβλητές σε σγουρές αγκύλες. Χρησιμοποιείτε παρεμβολή συμβολοσειράς καθώς το περιεχόμενο μέσα στην πρόταση εκτύπωσης είναι μια συμβολοσειρά, αλλά η τιμή των μεταβλητών είναι ακέραιος.

Τυπώνω(φά"""Ο κωδικός πρόσβασής σας έχει:- 
{lower_alpha_count} πεζά γράμματα
{upper_alpha_count} κεφαλαία γράμματα
{number_count} ψηφία
{special_char_count} ειδικοί χαρακτήρες
{length} μήκος
{κοινό} κοινό
{repeated} επαναλαμβάνεται
"Βαθμολογία κωδικού πρόσβασης: {Strength}/7""")

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

κωδικός πρόσβασης = εισαγωγή ("Εισάγετε τον κωδικό πρόσβασης:")
check_password_strength (κωδικός πρόσβασης)

Έξοδος ελέγχου ισχύος κωδικού πρόσβασης

Όταν εισάγετε έναν ισχυρό κωδικό πρόσβασης με βάση τα χαρακτηριστικά που αναφέρονται, το πρόγραμμα Python εμφανίζει την ισχύ ως 7/7:

Κατά την εισαγωγή ενός αδύναμου και κοινού κωδικού πρόσβασης, το πρόγραμμα Python εμφανίζει την ισχύ ως 1/7:

Κωδικοί πρόσβασης και ασφάλεια

Ενώ μπορείτε να ορίσετε τον ισχυρότερο κωδικό πρόσβασης ποτέ, υπάρχουν και άλλοι τρόποι που ένας χάκερ μπορεί να εισβάλει στο σύστημά σας. Το 95% των κυβερνοεπιθέσεων είναι αποτέλεσμα ανθρώπινου λάθους. Μία από τις πιο κοινές μεθόδους που χρησιμοποιούν οι χάκερ είναι η κοινωνική μηχανική. Ο χάκερ μπορεί να σας στείλει πλαστούς συνδέσμους σε ιστότοπους κοινωνικής δικτύωσης ή ηλεκτρονικού εμπορίου που φαίνονται νόμιμοι, αλλά να θέσει σε κίνδυνο τον κωδικό πρόσβασής σας εάν τους χρησιμοποιήσετε.

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