Γεννήτρια Hash
Πληκτρολογήστε ή επικολλήστε κείμενο παρακάτω — και τα τέσσερα hash ενημερώνονται ζωντανά, υπολογισμένα εξ ολοκλήρου στο πρόγραμμα περιήγησής σας. Τίποτα από όσα εισάγετε δεν φεύγει ποτέ από αυτή τη σελίδα.
Τέσσερις αλγόριθμοι, μία ζωντανή σύγκριση
Μια συνάρτηση hash παίρνει οποιαδήποτε είσοδο και παράγει ντετερμινιστικά ένα «αποτύπωμα» σταθερού μήκους — η ίδια είσοδος δίνει πάντα την ίδια έξοδο, αλλά δεν υπάρχει τρόπος να ανακτήσετε το αρχικό κείμενο ξεκινώντας από το hash. Το MD5 (1992) παράγει digest 128 bit, 32 δεκαεξαδικούς χαρακτήρες, και είναι το ταχύτερο από τα τέσσερα, όμως πραγματικές συγκρούσεις είναι γνωστές από το 2004. Το SHA-1 (1995) παράγει 160 bit, 40 χαρακτήρες, και ήταν το προεπιλεγμένο του διαδικτύου για χρόνια, μέχρι που μια πρακτική επίθεση σύγκρουσης το 2017 το τερμάτισε. Τα SHA-256 και SHA-512, και τα δύο μέρος της νεότερης οικογένειας SHA-2, παράγουν digest 256 και 512 bit (64 και 128 χαρακτήρες) και παραμένουν η καθιερωμένη επιλογή όποτε η ασφάλεια έχει πραγματικά σημασία — πιστοποιητικά TLS, υπογραφή κώδικα και η απόδειξη εργασίας του Bitcoin βασίζονται όλα στο SHA-256.
Παράδειγμα
Είσοδος: Hello, World!
- MD5 →
65a8e27d8879283831b664bd8b7f0ad4 - SHA-1 →
0a0a9f2a6772942557ab5355d76af442f8f65e01 -
SHA-256 →
dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f -
SHA-512 →
374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387
Αλλάξτε έναν μόνο χαρακτήρα — ένα πεζό «h» αντί για κεφαλαίο «H» — και και τα τέσσερα αποτελέσματα βγαίνουν εντελώς διαφορετικά, χωρίς καμία ορατή σχέση με τα αρχικά. Αυτό είναι το φαινόμενο χιονοστιβάδας στην πράξη.
Συχνές ερωτήσεις
Είναι ασφαλή τα MD5 και SHA-1;
Όχι για οτιδήποτε σχετίζεται με ασφάλεια. Και τα δύο είναι κρυπτογραφικά σπασμένα: πρακτικές επιθέσεις σύγκρουσης (δύο διαφορετικές είσοδοι που παράγουν το ίδιο hash) έχουν επιδειχθεί για το MD5 από το 2004 και για το SHA-1 από το 2017 (η επίθεση «SHAttered»). Αυτό τα καθιστά ακατάλληλα για αποθήκευση κωδικών πρόσβασης, ψηφιακές υπογραφές ή επιβεβαίωση ότι ένα αρχείο δεν έχει παραποιηθεί από κάποιον κακόβουλο. Παραμένουν όμως απόλυτα κατάλληλα για χρήσεις εκτός ασφάλειας — checksums για εντοπισμό τυχαίας αλλοίωσης, αποφυγή διπλότυπων αρχείων ή γρήγορο αποτύπωμα για κλειδί cache. Όπου η ασφάλεια έχει πραγματικά σημασία, χρησιμοποιήστε SHA-256 ή SHA-512.
Ποια είναι η πραγματική διαφορά ανάμεσα στους τέσσερις αλγόριθμους;
Το μήκος του digest και ο σχεδιασμός του. Το MD5 παράγει digest 128 bit (32 δεκαεξαδικοί χαρακτήρες)· το SHA-1 παράγει 160 bit (40 χαρακτήρες)· τα SHA-256 και SHA-512 ανήκουν στη νεότερη οικογένεια SHA-2 και παράγουν 256 bit (64 χαρακτήρες) και 512 bit (128 χαρακτήρες) αντίστοιχα. Ένα μεγαλύτερο digest σημαίνει αστρονομικά περισσότερες πιθανές εξόδους, κάτι που εξηγεί σε μεγάλο βαθμό γιατί το SHA-2 έχει αντέξει στο είδος των επιθέσεων σύγκρουσης που έσπασαν τα MD5 και SHA-1. Το SHA-512 είναι συχνά πιο γρήγορο από το SHA-256 σε υλικό 64 bit παρότι είναι μεγαλύτερο, επειδή οι εσωτερικές του λειτουργίες είναι σχεδιασμένες γύρω από λέξεις 64 bit.
Γιατί η αλλαγή ενός χαρακτήρα αλλάζει εντελώς το hash;
Είναι το φαινόμενο χιονοστιβάδας (avalanche effect), μια σκόπιμη ιδιότητα σχεδιασμού κάθε κρυπτογραφικής συνάρτησης hash: η αλλαγή ενός και μόνο bit της εισόδου θα έπρεπε να αλλάζει περίπου τα μισά bit της εξόδου, χωρίς κανένα ορατό μοτίβο που να συνδέει τα δύο αποτελέσματα. Δοκιμάστε το — δημιουργήστε το hash του «hello» και μετά του «Hello» και συγκρίνετε. Αυτό είναι που κάνει τα hash χρήσιμα ως αποτυπώματα: ένα hash που άλλαζε ελάχιστα για μια παρόμοια είσοδο θα αποκάλυπτε πληροφορίες για την ίδια την είσοδο.
Ανεβαίνει το κείμενό μου κάπου;
Όχι. Τα SHA-1, SHA-256 και SHA-512 περνούν από το ενσωματωμένο Web Crypto API του προγράμματος περιήγησής σας, και το MD5 από απλή JavaScript σε αυτή ακριβώς τη σελίδα — και τα δύο γίνονται εξ ολοκλήρου στη συσκευή σας. Τίποτα από όσα πληκτρολογείτε δεν στέλνεται, δεν καταγράφεται και δεν αποθηκεύεται σε κανέναν διακομιστή· κλείνοντας ή ανανεώνοντας την καρτέλα, όλα διαγράφονται.