Τι είναι ένα MD5 hash;

Ένα MD5 hash είναι ένα αποτύπωμα 128-bit που δημιουργείται από οποιοδήποτε κομμάτι δεδομένων. Γράφεται ως μια συμβολοσειρά 32 χαρακτήρων δεκαεξαδικού και παράγεται από μια συνάρτηση μιας κατεύθυνσης: η ίδια είσοδος επιστρέφει πάντα το ίδιο hash, αλλά τα αρχικά δεδομένα δεν μπορούν να ανακτηθούν από αυτό. Ακόμη και μια αλλαγή ενός byte στο αρχείο προέλευσης παράγει ένα εντελώς διαφορετικό hash.

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

Περιγραφή εργαλείου

Αυτό το εργαλείο υπολογίζει το MD5 hash ενός αρχείου απευθείας στο πρόγραμμα περιήγησής σας, συμπεριλαμβανομένων πολύ μεγάλων αρχείων που θα υπερέβαιναν κανονικά τα όρια μνήμης. Το αρχείο μεταδίδεται σε chunks και επεξεργάζεται σταδιακά, επομένως τίποτα δεν ανεβαίνει σε διακομιστή και αρχεία μεγέθους gigabyte μπορούν να κατακερματιστούν χωρίς να καταρρεύσει η σελίδα.

Παραδείγματα

Αρχείο εισόδου MD5 hash
Κενό αρχείο (0 bytes) d41d8cd98f00b204e9800998ecf8427e
Αρχείο κειμένου με hello 5d41402abc4b2a76b9719d911017c592
Εικόνα ISO 4 GB e2fc714c4727ee9395f324cd2e7f331f (παράδειγμα)

Χαρακτηριστικά

  • Κατακερματίζει αρχεία οποιουδήποτε μεγέθους, συμπεριλαμβανομένων αρχείων πολλών gigabyte, χωρίς να τα φορτώνει πλήρως στη μνήμη
  • Επεξεργάζεται αρχεία τοπικά στο πρόγραμμα περιήγησης — χωρίς ανέβασμα, χωρίς διακομιστή, χωρίς δεδομένα να φεύγουν από τη συσκευή σας
  • Ζωντανή γραμμή προόδου που δείχνει το ποσοστό που ολοκληρώθηκε κατά τη διάρκεια του κατακερματισμού
  • Εμφανίζει το όνομα αρχείου και το ευανάγνωστο μέγεθος αρχείου δίπλα στο αποτέλεσμα
  • Αντιγραφή με ένα κλικ του MD5 checksum που προκύπτει

Περιπτώσεις χρήσης

  • Επαλήθευση ότι μια μεγάλη λήψη (εικόνα ISO, βίντεο, σύνολο δεδομένων) ταιριάζει με το MD5 checksum που δημοσιεύθηκε από την πηγή του
  • Επιβεβαίωση ότι ένα αρχείο που αντιγράφηκε σε εξωτερικό δίσκο ή ανεβάστηκε σε αποθήκευση cloud είναι πανομοιότυπο με το αρχικό
  • Δημιουργία αποτυπώματος ενός build artifact ή backup ώστε να μπορείτε να ανιχνεύσετε αργότερα διαφθορά ή παραποίηση

Πώς λειτουργεί

Το αρχείο διαβάζεται σε chunks 16 MB χρησιμοποιώντας το API File.slice() του προγράμματος περιήγησης. Κάθε chunk τροφοδοτείται σε μια σταδιακή υλοποίηση MD5 (SparkMD5), η οποία ενημερώνει μια εσωτερική κατάσταση χωρίς να διατηρεί προηγούμενα chunks στη μνήμη. Μόλις κάθε chunk έχει επεξεργαστεί, το τελικό hash υπολογίζεται από την συσσωρευμένη κατάσταση. Αυτή η προσέγγιση streaming διατηρεί τη χρήση μνήμης χαμηλή και σταθερή ανεξάρτητα από το μέγεθος του αρχείου.

Συμβουλές

  • Για πολύ μεγάλα αρχεία, η ταχύτητα κατακερματισμού εξαρτάται κυρίως από την ταχύτητα ανάγνωσης δίσκου και τον CPU σας· τα SSD και τα σύγχρονα προγράμματα περιήγησης δίνουν την καλύτερη απόδοση.
  • Συγκρίνετε το παραγόμενο hash με το επίσημο επικολλώντας και τα δύο σε ένα εργαλείο σύγκρισης κειμένου, ή απλώς ελέγξτε ότι οι συμβολοσειρές ταιριάζουν χαρακτήρα προς χαρακτήρα.
  • Εάν χρειάζεστε ισχυρότερες εγγυήσεις κατά της σκόπιμης παραποίησης, χρησιμοποιήστε αντί αυτού ένα εργαλείο SHA-256 — το MD5 είναι κατάλληλο για ελέγχους ακεραιότητας, όχι για επαλήθευση κρίσιμη για την ασφάλεια.

Συχνές ερωτήσεις

Ανεβαίνει το αρχείο μου κάπου; Όχι. Ο κατακερματισμός γίνεται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας χρησιμοποιώντας JavaScript. Το αρχείο δεν φεύγει ποτέ από τη συσκευή σας.

Γιατί χρησιμοποιείται ακόμη το MD5 αν δεν είναι ασφαλές; Το MD5 είναι σπασμένο για κρυπτογραφική χρήση (ένας επιτιθέμενος μπορεί να δημιουργήσει συγκρούσεις), αλλά είναι ακόμη εξαιρετικό στην ανίχνευση τυχαίας διαφθοράς και είναι πολύ ταχύτερο από ασφαλή hashes. Τα περισσότερα αρχεία checksum που δημοσιεύονται δίπλα σε λήψεις χρησιμοποιούν ακόμη MD5 ή SHA-1.

Ποιο είναι το μέγιστο μέγεθος αρχείου; Δεν υπάρχει σκληρό όριο που επιβάλλεται από το εργαλείο. Στην πράξη, το όριο ορίζεται από το πρόγραμμα περιήγησής σας και τους διαθέσιμους πόρους του συστήματος, αλλά αρχεία πολλών gigabyte λειτουργούν καλά επειδή το αρχείο μεταδίδεται σε chunks.