Δημιουργήστε ένα string που άλας , το οποίο είναι ένα unguessable συμβολοσειράς που χρησιμοποιείται για την κρυπτογράφηση . Η συμβολοσειρά άλας θα χρησιμοποιηθεί για τη δημιουργία hashes καθώς και τον προσδιορισμό της ισχύος τους . Ένας τρόπος για να δημιουργήσετε μια καλή σειρά αλάτι είναι περιπλέκοντας μια δέσμη των τυχαίων χαρακτήρων με τη λειτουργία md5 της PHP . Η έξοδος της συνάρτησης είναι ένα 32 - ψήφιο αριθμό δεκαεξαδικό , δίνοντάς σας περισσότερο από ό, 3.40 x 10 ^ 38 πιθανούς συνδυασμούς . Για παράδειγμα , να περιλαμβάνουν κάτι σαν το παρακάτω στον κώδικα της PHP σας :
$ αλάτι = md5 ( " 4hJUd5sPP97hT ")? 2
Συνδυάστε το κείμενο με τη σειρά άλατος με το τελεστή συνένωσης , η οποία είναι στην πραγματικότητα μια περίοδο , και κρυπτογράφηση με τη συνάρτηση md5 . Για παράδειγμα , αν είστε κρυπτογράφηση των κωδικών πρόσβασης , πληκτρολογήστε :
$ password = " Us54EEh5R " ?
$ Κρυπτογραφημένα = md5 ( . $ Password $ αλάτι) ?
" Rainbow πίνακες " είναι οι βάσεις δεδομένων που χρησιμοποιούνται για την πυρόλυση MD5 hashes , το μεγαλύτερο από τα οποία έχουν μεταξύ 10 και 20 δισεκατομμύρια καταχωρήσεις . Ακόμη και αν μια βάση δεδομένων είχε 100 δισεκατομμύρια διακριτές hashes MD5 , και αυτό είναι λιγότερο από ένας στους 10 ^ 27 από τους πιθανούς συνδυασμούς . Αν μια σταγόνα νερού είναι περίπου 1/10 cm ^ 3 , θα χρειαστούν περίπου 1,4 x 10 ^ 25 σταγόνες για να γεμίσει τους ωκεανούς της Γης . Ως εκ τούτου , οι πίνακες ουράνιο τόξο ανέρχονται σε λιγότερο από μια σταγόνα σε όλους τους ωκεανούς της Γης . Αν το αλάτι σειρά σας είναι καλή , δεν υπάρχει σχεδόν καμία πιθανότητα το κρυπτογραφημένο hash είναι σε μια βάση δεδομένων . Ακόμη και αν μία από τις βάσεις δεδομένων που είχαν την ίδια hash , το string που χρησιμοποιείται για τη δημιουργία του θα ήταν διαφορετική από εκείνη στη βάση δεδομένων , επειδή δεν μπορούν να σπαταλήσουν πολύτιμο χώρο στη βάση δεδομένων σχετικά με τις ατελείωτες συνδυασμούς MD5 αλατισμένα κωδικούς πρόσβασης . Αυτές οι βάσεις δεδομένων που πηγαίνει μετά από πολύ απλούστερο στόχους .
Εικόνων 3
Βεβαιωθείτε hashes όπως απαιτείται από τη δημιουργία του hash , όπως κάνατε πριν και συγκρίνοντάς το με το πρωτότυπο. Στην περίπτωση των κωδικών πρόσβασης , την αποθήκευση των κρυπτογραφημένων κωδικών πρόσβασης σε μια βάση δεδομένων . Όταν κάποιος προσπαθεί να χρησιμοποιήσει έναν κωδικό πρόσβασης , κρυπτογράφηση τον κωδικό πρόσβασης που εγγράφονται με το αλάτι , και να το συγκρίνετε με το αντίγραφο της βάσης δεδομένων . Με αυτόν τον τρόπο , ακόμα και ο διαχειριστής της βάσης δεδομένων δεν γνωρίζει καμία από τις κωδικούς πρόσβασης . Για παράδειγμα, πληκτρολογήστε :
$ encrypted_entry = md5 ( $ $ εισόδου αλάτι . ) ?
If ( $ encrypted_entry == $ κρυπτογραφημένο ) $ έγκυρη = TRUE ?
Άλλο $ έγκυρη = FALSE ?
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα