Skip to main content

Τι είναι τα hashes;

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

Οι Hashes διαδραματίζουν σημαντικό ρόλο στη διευκόλυνση των αναζητήσεων βάσης δεδομένων.Σε μια βάση δεδομένων που αποτελείται από ονόματα, για παράδειγμα, εάν ένας χρήστης ψάχνει για το "John Doe", ο υπολογιστής θα πρέπει να ταιριάζει με όλους τους χαρακτήρες στην αναζήτηση σε εκείνους κάθε καταχώρησης βάσης δεδομένων.Κάθε χαρακτήρας στο όνομα θα έχει 26 διαφορετικές δυνατότητες mdash;τα γράμματα του αγγλικού αλφαβήτου mdash;Ενώ το μεταβλητό μήκος των καταχωρήσεων θα επιβραδύνει επίσης την αναζήτηση.Η μετατροπή κάθε συμβολοσειράς κειμένου σε μια σειρά αριθμών θα απλοποιήσει την αναζήτηση, επειδή ο υπολογιστής θα έχει μόνο δέκα δυνατότητες για να ελέγξει για κάθε χαρακτήρα: ψηφία "0" στο "9."Το σταθερό μήκος της σειράς αριθμών βοηθά επίσης τον υπολογιστή να κάνει τη δουλειά του πιο αποτελεσματικά.

Σε μια βάση δεδομένων με μια λειτουργία κατακερματισμού που εφαρμόζεται, όλες οι καταχωρήσεις έχουν έναν αντίστοιχο, μοναδικό αριθμό.Αυτό ονομάζεται κλειδί hash.Σε αυτή την περίπτωση, όταν κάνετε μια αναζήτηση, ο υπολογιστής εφαρμόζει πρώτα τη λειτουργία κατακερματισμού στην είσοδο που έχετε γράψει, όπως το "John Doe".Αυτό έχει ως αποτέλεσμα μια αριθμητική τιμή, για παράδειγμα "456789."Ο υπολογιστής μπορεί στη συνέχεια να ταιριάζει γρήγορα με αυτό το αποτέλεσμα στο κλειδί κατακερματισμού που αντιστοιχεί στη σωστή καταχώρηση.

Οι Hashes λειτουργούν επίσης ως ψηφιακές υπογραφές.Για παράδειγμα, ένας αποστολέας, Robert, θέλει να στείλει ένα έγγραφο σε κάποιον και ο παραλήπτης, η Mary, θέλει να βεβαιωθεί ότι το έγγραφο δεν έχει παραβιαστεί ενώ καθ 'οδόν.Ο αποστολέας, Robert, πρέπει μόνο να εκτελέσει το έγγραφο μέσω μιας λειτουργίας κατακερματισμού, η οποία έχει ως αποτέλεσμα μια αριθμητική τιμή.Στη συνέχεια, ο Robert κρυπτογραφεί το κλειδί hash και στέλνει το έγγραφο μαζί με το κρυπτογραφημένο κλειδί.

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

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