Τι είναι το Hashing και γιατί πρέπει να νοιαστείται από κάθε προγραμματιστή;
Αν αναρωτηθήκατε ποτέ πώς οι ιστοσελίδες επαληθεύουν ότι τα αρχεία δεν έχουν αλλοιωθεί, ή πώς οι υπηρεσίες μπορούν να αποθηκεύουν κωδικούς πρόσβασης με ασφάλεια χωρίς να κρατούν στην πραγματικότητα το αρχικό κείμενο, ετοιμαστείτε να βρείτε τις απαντήσεις σας.
Τα Βασικά: Τι είναι η Συνάρτηση Hash;
Μια συνάρτηση hash είναι ένας μαθηματικός αλγόριθμος που λαμβάνει οποιαδήποτε είσοδο (έναν κωδικό πρόσβασης, ένα αρχείο, μια συμβοχή κειμένου) και τη μετατρέπει σε μια συμβοχή χαρακτήρων σταθερού μήκους. Η ίδια είσοδος θα παράγει πάντα την ίδια έξοδο, αλλά ακόμα και μια μικρή αλλαγή στην είσοδο δημιουργεί ένα εντελώς διαφορετικό hash.
Για παράδειγμα, αν κάνετε hash τη λέξη "hello" χρησιμοποιώντας τον αλγόριθμο SHA-256, θα λάβετε μια συγκεκριμένη συμβοχή 64 χαρακτήρων. Αλλάξτε την σε "Hello" (με κεφαλαίο H) και το hash γίνεται εντελώς αναγνώσιμος. Αυτή η ιδιότητα ονομάζεται φαινόμενο χιονοστιβάδας (avalanche effect) και είναι αυτό που κάνει το hashing τόσο ισχυρό.
Γιατί το Hashing Σημασία για τους Προγραμματιστές