Επαλήθευση μαζικών hash αρχείων & manifest

Επιλογή ή σύρσιμο πολλών αρχείων μαζί και η σελίδα υπολογίζει το digest MD5, SHA-1, SHA-256, SHA-384 ή SHA-512 για καθένα από αυτά, εξ ολοκλήρου μέσα στο πρόγραμμα περιήγησης. Στη συνέχεια είτε αντιγράφονται τα αποτελέσματα ως γραμμές συμβατές με sha256sum για σημειώσεις έκδοσης, είτε επικολλάται manifest checksum (SHA256SUMS, .sha256, .sfv, έξοδος BSD openssl dgst) και η σελίδα δείχνει ποια αρχεία επαληθεύτηκαν, ποια δεν ταιριάζουν και ποια λείπουν. Τίποτα δεν μεταφορτώνεται πουθενά. Για μεμονωμένο αρχείο με περισσότερους αλγόριθμους, βλ. το Hash Generator.
Απόθεση αρχείων εδώ, ή κλικ για επιλογή τους
Έως 50 αρχεία, 200 MB το καθένα. Τα αρχεία παραμένουν σε αυτόν τον υπολογιστή.
Δεν έχουν επιλεγεί αρχεία.
— έξοδος δεκαεξαδικών· απαιτείται τουλάχιστον μία επιλογή.
Κλικ σε οποιοδήποτε κελί digest για αντιγραφή του. Τα ονόματα και τα μεγέθη εμφανίζονται πάντα, οπότε ο πίνακας λειτουργεί και ως προβολή μεγέθους μαζικών αρχείων.
Ο πίνακας digest εμφανίζεται εδώ μόλις επιλεγούν αρχεία και εκτελεστεί ο Υπολογισμός.
Επικόλληση manifest σε μορφή GNU (hash  name), BSD (SHA256 (name) = hash), SFV (name crc32) ή απλή (sha256=hash), ή μεταφόρτωση του ίδιου του αρχείου .sha256 / SHA256SUMS / .sfv. Οι γραμμές που αρχίζουν με ; αντιμετωπίζονται ως σχόλια.
Απόρρητο: κάθε digest υπολογίζεται με τη μηχανή JavaScript και WebCrypto του ίδιου του προγράμματος περιήγησης — τα αρχεία δεν φεύγουν ποτέ από αυτή την καρτέλα. Συμβουλή: μετά την επαλήθευση μιας λήψης η σελίδα μπορεί να κλείσει με ασφάλεια· δεν αποθηκεύτηκε τίποτα.

Τι είναι ο μαζικός υπολογισμός hash αρχείων;

Ένα checksum είναι ένα σύντομο αποτύπωμα ενός αρχείου: όταν τα byte του αρχείου περάσουν από μια συνάρτηση hash προκύπτει ένα digest που σχεδόν σίγουρα αλλάζει ακόμη και αν αλλάξει ένα μόνο byte του αρχείου . Οι διανομείς λογισμικού δημοσιεύουν αυτά τα digest δίπλα στις λήψεις τους, ώστε ο χρήστης να μπορεί να επαληθεύσει ότι το αρχείο που έλαβε είναι το αρχείο που στάλθηκε — η λήψη δεν περικόπηκε ούτε αλλοιώθηκε, και κανείς δεν αντικατέστησε διαφορετικό περιεχόμενο.

Η επεξεργασία ενός αρχείου τη φορά είναι εντάξει για μία λήψη. Από τη στιγμή που υπάρχει ένας φάκελος αρχείων, ή ένα αρχείο έκδοσης με manifest SHA256SUMS μέσα, χρειάζεται η μαζική εκδοχή: υπολογίζεται το hash κάθε αρχείου μία φορά, και στη συνέχεια ελέγχεται κάθε γραμμή του manifest έναντι του αντίστοιχου αρχείου. Αυτή ακριβώς είναι η διαδικασία που αυτοματοποιεί η σελίδα.

Οι μορφές manifest που διαβάζει αυτή η σελίδα

ΣτυλΠαράδειγμα γραμμήςΠού συναντάται
GNU900150983c...  hello.txtΈξοδος sha256sum / md5sum, αρχεία SHA256SUMS σε εκδόσεις Linux
BSDSHA256 (hello.txt) = 900150983c...openssl dgst -sha256 σε macOS/BSD
SFVhello.txt 1A2B3C4DΑρχεία Simple File Verification, παλιές δυαδικές ομάδες ειδήσεων
plainsha256=ba7816bf...Σελίδες λήψεων, σημειώσεις έκδοσης, Docker checksums

Το μήκος του ίδιου του hash καθορίζει τον αλγόριθμο: 32 δεκαεξαδικοί χαρακτήρες σημαίνουν MD5, 40 σημαίνουν SHA-1, 64 σημαίνουν SHA-256, 96 SHA-384 και 128 SHA-512 — άρα οι γραμμές μορφής GNU δεν χρειάζεται να δηλώνουν ποιο πρόγραμμα τις παρήγαγε.

Πώς λειτουργεί, εν συντομία

Κάθε αρχείο διαβάζεται μία φορά με το FileReader του προγράμματος περιήγησης και παραδίδεται στο crypto.subtle.digest (οικογένεια SHA) και σε τοπική υλοποίηση MD5. Τα digest κωδικοποιούνται δεκαεξαδικά και ευθυγραμμίζονται δίπλα στις εγγραφές του manifest· ένα αρχείο επαληθεύεται μόνο όταν το υπολογισμένο digest ταυτίζεται με το αναμενόμενο, χαρακτήρα προς χαρακτήρα. Οι γραμμές SFV φέρουν CRC-32 αντί για κρυπτογραφικό hash — η σελίδα τις σημαίνει ως μη υποστηριζόμενες αντί να υποθέτει ότι ένα CRC ισούται με digest.

Συνηθισμένα λάθη

“Όλα τα αρχεία δείχνουν ασυμφωνία.” — η συνηθέστερη αιτία είναι ένα manifest που έγινε για άλλη έκδοση της λήψης. Ο έλεγχος των ονομάτων αρχείων πρέπει να γίνει πρώτος: ο αντιστοιχιστής συγκρίνει τα βασικά ονόματα, οπότε το dist/app-1.2.bin αντιστοιχεί σε γραμμή manifest για το app-1.2.bin. “Το SHA-1 επαληθεύτηκε, άρα το αρχείο είναι ασφαλές;” — όχι. Η επαλήθευση αποδεικνύει ότι τα byte ταυτίζονται με όσα κυκλοφόρησε ο εκδότης· το αν ο εκδότης είναι αξιόπιστος είναι διαφορετικό ζήτημα. Επιπλέον, το SHA-1 έχει σπάσει ως προς τις συγκρούσεις από το 2017, οπότε όταν υπάρχει επιλογή, προτιμώνται manifest SHA-256.

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

Είναι αργός ο υπολογισμός hash σε μεγάλο αρχείο; — περίπου ένα δευτερόλεπτο ανά 200 MB σε συνηθισμένο υπολογιστή· μια γραμμή προόδου δείχνει πόσο έχει προχωρήσει η μαζική εργασία.
Μπορεί να επαληθευτεί manifest CRC-32 SFV; — οι γραμμές SFV αναλύονται και εμφανίζονται, αλλά το CRC-32 δεν υπολογίζεται από αυτή τη σελίδα· για μεμονωμένα αρχεία χρησιμοποιείται το εργαλείο CRC στο κέντρο κρυπτογραφίας.
Γιατί μόνο δεκαεξαδικά; — τα manifest στην πράξη είναι δεκαεξαδικά· τα digest Base64 είναι ένα χαρακτηριστικό που λείπει.
Τι γίνεται με τα αρχεία; — τίποτα: κανένας διακομιστής, καμία αποθήκευση, καμία αναλυτική· κλείνοντας την καρτέλα χάνεται κάθε byte της εισόδου.