Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Πώς να δημιουργήσει μυστικά κλειδιά σε PHP

Η MD5 Message- Digest Algorithm είναι ένας αλγόριθμος κρυπτογράφησης μονόδρομο που χρησιμοποιείται συχνά για τη δημιουργία μυστικών κλειδιών , τα οποία ονομάζονται hashes MD5 . Δεδομένου ότι η κρυπτογράφηση είναι ένας τρόπος , δύο διαφορετικές συμβολοσειρές κειμένου μπορεί να παράγει το ίδιο MD5 hash , πράγμα που σημαίνει ότι δεν μπορεί να το αποκρυπτογραφήσει . Υπάρχει ένας άπειρος αριθμός από τρόπους για να παράγουν το ίδιο hash . Ωστόσο, οι χάκερς έχουν τρόπους να ανακαλύψετε τις χορδές που χρησιμοποιούνται για τη δημιουργία hashes , έτσι πληρώνει για τη δημιουργία τους με προσοχή . PHP : Hypertext Preprocessor είναι μια γλώσσα προγραμματισμού που υποστηρίζει MD5 και άλλοι αλγόριθμοι κρυπτογράφησης , καθώς και . Οδηγίες
Η 1

Δημιουργήστε ένα 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 ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα