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

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

Ο σύγχρονος αλγόριθμος MySQL Native Password εφαρμόζει κατακερματοποίηση SHA-1 δύο φορές: SHA1(SHA1(password)). Αυτή η διπλή κατακερματοποίηση παρέχει ένα επιπλέον επίπεδο ασφάλειας. Η προκύπτουσα συμβολοσειρά 40 χαρακτήρων δεκαεξαδικού προθέτου με ένα αστερίσκο (*) για να υποδείξει ότι είναι ένα κατακερματισμένο κωδικό πρόσβασης, παράγοντας τιμές όπως *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Περιγραφή εργαλείου

Αυτή η Γεννήτρια Κατακερματισμού Κωδικού Πρόσβασης MySQL δημιουργεί κατακερματισμούς ταυτοποίησης συμβατούς με βάσεις δεδομένων MySQL και MariaDB. Εισάγετε οποιονδήποτε κωδικό πρόσβασης και δημιουργήστε αμέσως το αντίστοιχο κατακερμάτωμα που μπορεί να χρησιμοποιηθεί απευθείας σε δηλώσεις SQL όπως CREATE USER ή ALTER USER. Το εργαλείο υποστηρίζει τόσο τη σύγχρονη μορφή MySQL Native Password (MySQL 4.1 και νεότερη) όσο και τη legacy μορφή Old Password για παλαιότερα συστήματα.

Παραδείγματα

MySQL Native Password (4.1+):

  • Είσοδος: mypassword
  • Έξοδος: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Είσοδος: mypassword
  • Έξοδος: 162eebfb6477e5d3

Χρήση SQL:

-- Δημιουργία χρήστη με κατακερματισμένο κωδικό πρόσβασης
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Ενημέρωση κωδικού πρόσβασης υπάρχοντος χρήστη
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Χαρακτηριστικά

  • MySQL Native Password: Δημιουργεί κατακερματισμούς SHA1(SHA1(password)) για MySQL 4.1+ και MariaDB
  • Legacy Old Password: Υποστηρίζει τη μορφή κατακερματισμού pre-MySQL 4.1 για ανάστροφη συμβατότητα
  • Κατακερματοποίηση σε πραγματικό χρόνο: Το κατακερμάτωμα ενημερώνεται αμέσως καθώς πληκτρολογείτε
  • Εναλλαγή ορατότητας κωδικού πρόσβασης: Εμφάνιση ή απόκρυψη εισόδου κωδικού πρόσβασης για ευκολότερη εισαγωγή
  • Αντιγραφή με ένα κλικ: Γρήγορη αντιγραφή του δημιουργημένου κατακερματισμού στο πρόχειρο

Περιπτώσεις χρήσης

  • Δημιουργία λογαριασμών χρηστών MySQL με προ-κατακερματισμένους κωδικούς πρόσβασης σε σενάρια ανάπτυξης
  • Μετανάστευση χρηστών μεταξύ βάσεων δεδομένων MySQL διατηρώντας κατακερματισμούς κωδικών πρόσβασης
  • Δοκιμή και επικύρωση διαμορφώσεων ταυτοποίησης MySQL
  • Δημιουργία κατακερματισμών κωδικών πρόσβασης για εφαρμογές συμβατές με MySQL
  • Αντιμετώπιση προβλημάτων ταυτοποίησης συγκρίνοντας αναμενόμενα έναντι πραγματικών κατακερματισμών

Υποστηριζόμενες μορφές κατακερματισμού

Μορφή Αλγόριθμος Έκδοση MySQL Παράδειγμα Εξόδου
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Προσαρμοσμένο hash Pre-4.1 6f8c114b58f2ce9e

Ζητήματα ασφάλειας

Το κατακερμάτωμα MySQL Native Password είναι η συνιστώμενη μορφή για όλες τις σύγχρονες εγκαταστάσεις MySQL και MariaDB. Η μορφή Old Password θεωρείται ανασφαλής και θα πρέπει να χρησιμοποιείται μόνο για συμβατότητα με legacy συστήματα που δεν μπορούν να αναβαθμιστούν. Το MySQL 8.0 εισήγαγε το caching_sha2_password ως το νέο προεπιλογή, αλλά το mysql_native_password παραμένει ευρέως υποστηριζόμενο και συνήθως χρησιμοποιούμενο.