Εργαλεία Προγραμματιστή

Δημιουργός Hash & Άθροισμα Ελέγχου

Λάβετε MD5, SHA-1, SHA-256, SHA-384 και SHA-512 για κείμενο και αρχεία ταυτόχρονα. Επαληθεύστε ένα ληφθέν αρχείο έναντι του επίσημου αθροίσματος ελέγχου για να βεβαιωθείτε ότι δεν έχει παραποιηθεί. Όλα τοπικά, τίποτα δεν φεύγει από τον περιηγητή σας.

5 αλγόριθμοι ταυτόχρονα Άθροισμα ελέγχου κειμένου + αρχείου Τοπικό, μηδενική μεταφόρτωση Άμεσα αποτελέσματα
Χαρακτήρες Byte UTF-8

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

Και οι πέντε hash σε μια σελίδα

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

01

Πέντε αλγόριθμοι

MD5, SHA-1, SHA-256, SHA-384 και SHA-512 εμφανίζονται μαζί με τα μήκη bits εξόδου — δεν χρειάζεται πλέον εναλλαγή μεταξύ εργαλείων.

02

Υπολογισμός σε πραγματικό χρόνο

Hash κειμένου καθώς πληκτρολογείτε, δεν χρειάζεται πατήσετε κουμπί. Αποτελέσματα σε monospace — κάντε κλικ σε μια σειρά για αντιγραφή.

03

Έλεγχος ακεραιότητας αρχείου

Ρίξτε ένα πρόγραμμα εγκατάστασης, εικόνα δίσκου ή αρχείο και συγκρίνετέ το με το επίσημο άθροισμα ελέγχου για να επιβεβαιώσετε μια μη παραποιημένη λήψη.

04

Τοπικό, μηδενική μεταφόρτωση

Η οικογένεια SHA χρησιμοποιεί το ενσωματωμένο Web Crypto API του περιηγητή. Το κείμενο και τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας — ευαίσθητο περιεχόμενο είναι ασφαλές.

05

Συνεπές UTF-8

Το κείμενο κατακερματίζεται ως byte UTF-8, επομένως τα αποτελέσματα ταιριάζουν ακριβώς με τα md5sum, PHP md5() και Python hashlib.

06

Αντίγραφο με ένα κλικ

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

Τι πρέπει να γνωρίζετε για τους κατακερματισμούς

Η ιδέα είναι απλή, αλλά η χρήση του λάθος κατακερματισμού για λάθος εργασία είναι πραγματικό σφάλμα ασφάλειας.

Τι ακριβώς είναι τα MD5 και SHA-1;

Το MD5 (Αλγόριθμος Μηνυματικού Περιλήμματος 5) σχεδιάστηκε από τον Ronald Rivest στο MIT και δημοσιεύτηκε το 1992 ως RFC 1321, παράγοντας ένα σταθερό αθροίσμα 128-bit (32 χαρακτήρων εξαψήφισης) ως διάδοχος του MD4. Το SHA-1 σχεδιάστηκε από την Υπηρεσία Εθνικής Ασφάλειας των ΗΠΑ και δημοσιεύτηκε το 1995 ως ομοσπονδιακό πρότυπο FIPS 180-1, παράγοντας 160 bits. Και τα δύο έγιναν οι ευρύτερα χρησιμοποιούμενοι αλγόριθμοι κατακερματισμού τις επόμενες δύο δεκαετίες — χρησιμοποιήθηκαν για αθροίσματα ελέγχου αρχείων, αποθήκευση κωδικών πρόσβασης, ψηφιακές υπογραφές και αναγνωριστικά δέσμευσης Git. Σημειώστε ότι εξακολουθούν να παράγουν σωστά αθροίσματα σήμερα. Η έννοια "ανασφαλές" σημαίνει ότι η αντίσταση στις συγκρούσεις τους έχει καταστραφεί, όχι ότι το αποτέλεσμα τους είναι λάθος.

Είναι ο κατακερματισμός, η κρυπτογράφηση και η κωδικοποίηση το ίδιο πράγμα;

Όχι — επιλύουν διαφορετικά προβλήματα. Η κωδικοποίηση (όπως Base64 ή κωδικοποίηση URL) είναι μια αναστρέψιμη μετα morphe μορφής που μπορεί να αναιρέσει οποιοσδήποτε, χωρίς να προσφέρει ασφάλεια. Η κρυπτογράφηση είναι αναστρέψιμη με ένα κλειδί: το απλό κείμενο μετατρέπεται σε κρυπτοκείμενο και το σωστό κλειδί το αποκρυπτογραφεί. Ο κατακερματισμός είναι μονόδρομος, δεν έχει κλειδί και το πρωτότυπο δεν μπορεί να ανακτηθεί από το αθροίσμα — χρησιμοποιείται για δακτυλικά αποτυπώματα, ελέγχους ακεραιότητας και υπογραφές. Δύο συνηθισμένες παρανοήσεις: η μεταχείριση του Base64 ως "κρυπτογράφησης" και η δήλωση ότι ένας κωδικός πρόσβασης "κρυπτογραφήθηκε με MD5" — αυτό είναι κατακερματισμός, και ένας ανασφαλής τρόπος για να αποθηκεύσετε κωδικούς πρόσβασης από αυτήν την άποψη.

Γιατί ένας κατακερματισμός δεν μπορεί να αντιστραφεί στο πρωτότυπο;

Ένας κατακερματισμός είναι μια συνάρτηση μονής διαδρομής: είσοδος οποιουδήποτε μήκους συμπιέζεται σε ένα αθροίσμα σταθερού μήκους, εξαφανίζοντας τις περισσότερες πληροφορίες. Όπως δεν μπορείτε να αναconstructe μια πρόταση από τον αριθμό των λέξεων της, έτσι δεν μπορείτε να προέλευίσετε το πρωτότυπο από το αθροίσμα. Οι ασφαλείς αλγόριθμοι σχεδιάζονται ειδικά για να καθιστούν τέτοια αντίστροφη λειτουργία υπολογιστικά ανέφικτη.

Είναι τα MD5 και SHA-1 ακόμα χρήσιμα;

Για τον έλεγχον αν ένα αρχείο καταστράφηκε κατά λάθος κατά τη μεταφορά — ναι, κάθε τυχαία αλλαγή byte σχεδόν πάντα αλλάζει το MD5. Αλλά ποτέ για ασφάλεια: υπάρχουν πρακτικές επιθέσεις συγκρούσεων και για τα δύο (ερευνητές μπορούν να δημιουργήσουν δύο διαφορετικά αρχεία με το ίδιο MD5 υπό τον έλεγχό τους). Χρησιμοποιήστε SHA-256 ή υψηλότερο για κωδικούς πρόσβασης, υπογραφές και πιστοποιητικά.

Γιατί ο κατακερματισμός μου διαφέρει από ένα άλλο εργαλείο για το ίδιο κείμενο;

Τρεις συνήθεις λόγοι: ① διαφορετική κωδικοποίηση χαρακτήρων (αυτό το εργαλείο χρησιμοποιεί πάντα UTF-8; παλαιότερα εργαλεία ενδέχεται να χρησιμοποιούν GBK ή Latin-1); ② ένα τελικό νέο πεδίο — η εντολή echo προσθέτει ένα από προεπιλογή (χρησιμοποιήστε echo -n); ③ ένα τυχαίο κενό ή αόρατος χαρακτήρας κατά την αντιγραφή. Οι κατακερματισμοί είναι ευαίσθητοι σε κάθε byte, οπότε ένα byte μακριά αλλάζει το αποτέλεσμα εντελώς.

Γιατί δεν μπορούν οι κωδικοί πρόσβασης να αποθηκευτούν ως απλό MD5/SHA-256;

Οι κανονικοί κατακερματισμοί είναι γρήγοροι. Με έναν διαρρεύσαντα πίνακα κατακερματισμών, οι εισβολείς μπορούν να δοκιμάσουν δισεκατομμύρια εικασίες ανά δευτερόλεπτο, και οι ουράνιες ουρές (rainbow tables) αντιστρέφουν τους συνηθισμένους κωδικούς πρόσβασης στιγμιαία. Οι κωδικοί πρόσβασης χρειάζονται επίτηδες αργούς αλγόριθμους που απαιτούν πολλή μνήμη (bcrypt, scrypt, Argon2) με ένα μοναδικό αλάτι για κάθε κωδικό πρόσβασης, καθιστώντας την ωμή brute force απαγορευτικά ακριβή.

Πώς μπορώ να επαληθεύσω την ακεραιότητα ενός αρχείου που κατέβασα;

Βρείτε το άθροισμα ελέγχου που δημοσιεύτηκε στην επίσημη ιστοσελίδα (συνήθως SHA-256), σύρετε το αρχείο που κατεβάσατε στην καρτέλα "Άθροισμα ελέγχου αρχείου" εδώ και επικολλήστε την επίσημη τιμή στο πλαίσιο πάνω από τα αποτελέσματα. Το εργαλείο ανιχνεύει τον αλγόριθμο από το μήκος της τιμής και κάνει τον αντίστοιχο σειρά πράσινο όταν τα byte του αρχείου είναι ακριβώς όσα κυκλοφόρησε ο εκδότης; κόκκινο σημαίνει καταστροφή ή αντικατάσταση man-in-the-middle — μην εκτελέσετε το αρχείο.

Ποιος από τους πέντε αλγόριθμους να χρησιμοποιήσετε

Επιλέξτε ανάλογα το σενάριο. Οι νεότεροι αλγόριθμοι παράγουν μεγαλύτερες digest, αντιστέκονται καλύτερα σε επιθέσεις και κοστίζουν ελαφρώς περισσότερο για την υπολογιστική επεξεργασία.

Αλγόριθμος Εισήχθη Μήκος εξόδου Ασφάλεια Τυπική χρήση
MD5 1992 128 bits (32 χαρακτήρες) Καταστραμμένος; συγκρούσεις πρακτικές Ψήφισμα μη ασφαλείας, αποφυγή διπλότυπων, παλαιότερη συμβατότητα
SHA-1 1995 160 bits (40 χαρακτήρες) Συγκρούσεις πρακτικές από το 2017 ID ιστορικού Git και άλλα παλαιότερα συστήματα; όχι για νέα χρήση ασφαλείας
SHA-256 2001 256 bits (64 χαρακτήρες) Ασφαλής σήμερα Άθροισματα ελέγχου αρχείων, υπογραφές, πιστοποιητικά TLS, blockchains — η καθολική προεπιλογή
SHA-384 2001 384 bits (96 χαρακτήρες) Ασφαλής Περικομμένο SHA-512 για καθεστώτα συμμόρφωσης που απαιτούν 384 bits
SHA-512 2001 512 bits (128 χαρακτήρες) Ασφαλής Υπογραφές υψηλής αξιοπιστίας; συχνά πιο γρήγορο από το SHA-256 σε CPU 64-bit

"Ασφαλής" σημαίνει καμία πρακτική δημόσια επίθεση σύγκρουσης μέχρι σήμερα. Για αποθήκευση κωδικών πρόσβασης χρησιμοποιήστε bcrypt/Argon2 ανεξάρτητα από την επιλογή hash.

Άθροισματα ελέγχου: πώς να επαληθεύσετε πραγματικά ένα αρχείο που κατεβάσατε

Για τι χρησιμεύει αυτή η συμβολοσειρά MD5 ή SHA-256 σε μια σελίδα λήψης, πώς να τη συγκρίνετε και με τι να τη συγκρίνετε — όλα σε μια ενότητα.

Γιατί να επαληθεύετε καθόλου

Το αρχείο στον δίσκο σας δεν είναι απαραίτητα το ίδιο με το αρχείο στον διακομιστή. Η σύγκριση αθροίσματος ελέγχου δέκα δευτερολέπτων προστατεύει από τρία είδη προβλημάτων:

Καταστροφή κατά τη μεταφορά

Μεγάλα αρχεία μέσω ανανεώσιμων λήψεων και ασταθών δικτύων λαμβάνουν περίεργα byte εκπληκτικά συχνά; η αντιμετώπιση ενός κατεστραμμένου εγκαταστάτη διαρκεί πολύ περισσότερο από δέκα δευτερόλεπτα.

Εκτός συγχρονισμού mirrors

Πολλές λήψεις προέρχονται στην πραγματικότητα από mirrors ή CDNs, όπου η υστέρηση συγχρονισμού ή τα σφάλματα προσωρινής αποθήκευσης μπορούν να σας δώσουν μια παλαιότερη έκδοση — ή μισό αρχείο.

Σκόπιμη παραποίηση

Όταν μια πηγή λήψης παραβιάζεται ή ένα δημόσιο δίκτυο χακάρεται, αρχεία μπορούν να φέρουν backdoor. Το 2016 η ιστοσελίδα του Linux Mint παραβιάστηκε και οι σύνδεσμοι λήψης αντικαταστάθηκαν με ένα ISO με backdoor — η πρώτη απάντηση του έργου ήταν να προτρέψει όλους να ελέγξουν το άθροισμα ελέγχου.

Τι είναι ένα άθροισμα ελέγχου

Ο εκδότης υπολογίζει το κρυπτογραφικό άθροισμα του αρχείου στον διακομιστή του και δημοσιεύει το αποτέλεσμα στη σελίδα λήψης. Μετά τη λήψη, εσείς υπολογίζετε εκ νέου το άθροισμα τοπικά. Αν οι δύο συμβολοσειρές ταιριάζουν byte προς byte, τα byte του αρχείου είναι ακριβώς αυτά που κυκλοφόρησε ο εκδότης — ούτε έχουν καταστραφεί, neither έχουν αλλοιωθεί. Ο έλεγχος είναι ευαίσθητος σε κάθε byte: αρκεί μια αλλαγή σε ένα μόνο byte για να αλλάξει εξ ολοκλήρου η τιμή. Γενικά, τα checksums περιλαμβάνουν και απλούστερα σχήματα όπως το CRC32 που ανιχνεύει τυχαία καταστροφή, ενώ κρυπτογραφικές συναρτήσεις κατακερματισμού όπως MD5/SHA αντέχουν additionally σε σκόπιμη παραποίηση.

Επαλήθευση ενός αρχείου σε τρία βήματα

  1. 1
    Λάβετε το επίσημο checksum

    Στη σελίδα λήψης, βρείτε την τιμή MD5 / SHA-256 που δημοσιεύτηκε (συχνά επισημαίνεται ως "checksum" ή συνοδεύεται από ένα αρχείο .sha256) και αντιγράψτε ολόκληρη τη συμβολοσειρά.

  2. 2
    Ρίξτε το αρχείο και επικολλήστε

    Μεταβείτε στην καρτέλα "File checksum" παραπάνω, ρίξτε το ληφθέν αρχείο και επικολλήστε το checksum στο πεδίο πάνω από τα αποτελέσματα.

  3. 3
    Διαβάστε την ετυμηγορία από το χρώμα

    Το εργαλείο ανιχνεύει τον αλγόριθμο από το μήκος της τιμής: πράσινο σημαίνει ότι το αρχείο ταιριάζει ακριβώς με την επίσημη έκδοση και είναι ασφαλές για χρήση; κόκκινο σημαίνει ότι μπορεί να έχει καταστραφεί ή αλλοιωθεί — μην το εκτελέσετε.

Ανάγνωση checksums σε επίσημους ιστότοπους

Οι σελίδες λήψης γράφουν checksums σε πολλά στυλ, αλλά όλα συνοψίζονται σε δύο στοιχεία: την τιμή κατακερματισμού και το όνομα του αρχείου. Αυτές οι τρεις μορφές είναι οι πιο συνηθισμένες — κατά την επικόλληση, πάρτε μόνο το μέρος του κατακερματισμού (αυτό το εργαλείο αγνοεί αυτόματα τα κενά και τις αλλαγές γραμμής):

# 1. Μία γραμμή: μόνο η τιμή
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. Μορφή sha256sum: τιμή + δύο κενά + όνομα αρχείου (ένα SHA256SUMS manifest είναι πολλές τέτοιες γραμμές)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. Μορφή BSD: Αλγόριθμος (όνομα αρχείου) = τιμή
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 ή SHA-256

Επαληθεύετε ό,τι παρέχει ο επίσημος ιστότοπος, αλλά αν πρέπει να επιλέξετε: το MD5 είναι επαρκές εντελώς για τυχαία καταστροφή κατά τη μεταφορά (οποιαδήποτε ακούσια αλλαγή σχεδόν πάντα αλλάζει το MD5). Enάντια σε σκόπιμη αλλοίωση — λογισμικό ασφαλείας, πιστοποιητικά, υπογεγραμμένα πακέτα — χρειάζεστε SHA-256 ή ισχυρότερο, επειδή πρακτικές επιθέσεις σύγκρουσης επιτρέπουν στους εισβολείς να δημιουργήσουν δύο διαφορετικά αρχεία με το ίδιο MD5. Αυτή η ιστορία εξηγείται παρακάτω στην "ιστορία ασφαλείας".

Επαλήθευση αντί της εκ των υστέρων εντολών γραμμής εντολών

Σε Linux και macOS, τα εργαλεία checksum δέχονται την επιλογή -c για αυτόματη επαλήθευση ολόκληρου του καταλόγου — δεν χρειάζεται χειροκίνητη σύγκριση. Οι ενσωματωμένες εντολές των Windows υπολογίζουν μόνο την τιμή, την οποία θα πρέπει να συγκρίνετε εσείς με την επίσημη τιμή μόνοι σας.

Περιβάλλον Εντολή επαλήθευσης
Linux sha256sum -c SHA256SUMS (ελέγχει κάθε αρχείο που αναγράφεται στο manifest)
macOS shasum -a 256 -c checksum.txt
Γρήγορος έλεγχος μιας μόνο τιμής echo "official-value filename" | sha256sum -c - (επιστρέφει OK σε περίπτωση επιτυχίας)
Windows Υπολογίστε με Get-FileHash <file> -Algorithm SHA256, μετά συγκρίνετε με την επίσημη τιμή

Μια σύντομη ιστορία ασφαλείας: πώς έσπασε το MD5

Το MD5 δεν απέτυχε όλη τη νύχτα — από την πρώτη ρωγμή στον ακαδημαϊκό κόσμο μέχρι παραποιημένα πιστοποιητικά στο πραγματικό πεδίο, χρειάστηκαν δύο δεκαετίες.

  1. 1992

    Το MD5 δημοσιεύτηκε

    Ο Ronald Rivest παρουσίασε το MD5 στο RFC 1321. Ταχύ, απλό στην υλοποίηση και πάντα παράγον άθροισμα κατακερματισμού 128-bit, έγινε γρήγορα το de facto πρότυπο για αθροίσματα κατακερματισμού αρχείων και αποθήκευση κωδικών πρόσβασης — και θεωρήθηκε κρυπτογραφικά ασφαλές.

  2. 2004

    Η ομάδα του Wang Xiaoyun αποκαλύπτει συγκρούσεις MD5 πλήρους όγκου

    Στο CRYPTO 2004, μια ομάδα με επικεφαλής τον Κινέζο μαθηματικό Wang Xiaoyun έδειξε επίθεση πλήρους σύγκρουσης στο MD5 — κατασκευάζοντας δύο αρχεία με διαφορετικά περιεχόμενα αλλά ίδιο κατακερματισμό (αρχικά σε περίπου μία ώρα σε υπερυπολογιστή IBM P690· μεταγενέστερες βελτιώσεις το μείωσαν σε δευτερόλεπτα σε συνηθισμένο υλικό). Η υπόσχεση της MD5 για ανθεκτικότητα σε συγκρούσεις είχε χαθεί· η θερμή υποδομή που ακολούθησε έγινε μία από τις πιο διάσημες στιγμές στην κρυπτογραφία.

  3. 2008

    Σφυρηλατημένα πιστοποιητικά χτυπούν τον πραγματικό ιστό

    Οι Marc Stevens, Alexander Sotirov και άλλοι χρησιμοποίησαν μια σύγκρουση επιλεγμένου προθέματος για να σφυρηλατήσουν ένα πιστοποιητικό ενδιάμεσης αρχής έκδοσης πιστοποιητικών (CA) που εμπιστεύονται τα προγράμματα περιήγησης: πιστοποιητικά με διαφορετικά προθέματα έφεραν την ίδια υπογραφή. Ένας επιτιθέμενος μπορούσε πλέον να εκδίδει «έγκυρα» πιστοποιητικά HTTPS για οποιονδήποτε πλαστό ιστότοπο. Οι αρχές έκδοσης πιστοποιητικών σταμάτησαν να εκδίδουν πιστοποιητικά MD5 λίγο αργότερα.

  4. 2012

    Το κακόβουλο λογισμικό Flame επιτίθεται στα Windows μέσω MD5

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

  5. 2017

    SHAttered: Το SHA-1 πέφτει

    Η Google και το ολλανδικό ινστιτούτο CWI (Marc Stevens et al.) δημοσίευσαν δύο διαφορετικά αρχεία PDF με ίδιο κατακερματισμό SHA-1 — με κόστος περίπου 6.500 έτη CPU και 110 έτη GPU. Τα προγράμματα περιήγησης απέσυραν την εμπιστοσύνη τους στα πιστοποιητικά SHA-1 σύντομα μετά, και οι πλατφόρμες Git επιτάχυναν τη μετανάστευσή τους μακριά από αυτόν. Η εποχή των 160-bit τελείωσε.

Σημαντική λεπτομέρεια: μια επίθεση σύγκρουσης δεν «σπάει» τον κατακερματισμό οποιουδήποτε υπάρχοντος αρχείου — κατασκευάζει δύο συγκεκριμένα αρχεία που κατακερματίζονται στην ίδια τιμή. Αλλά για υπογραφές και πιστοποιητικά, αυτό είναι ήδη αρκετό για μοιραία σφυρηλάτηση.

Κατακερματισμός από τη γραμμή εντολών

Όταν ένα πρόγραμμα περιήγησης δεν είναι εύκολα προσβάσιμο, κάθε λειτουργικό σύστημα διαθέτει μια ενσωματωμένη εντολή (απεικονίζεται το SHA-256).

Περιβάλλον Εντολή
Linux / macOS sha256sum filename (στο macOS: shasum -a 256 filename)
Windows PowerShell Get-FileHash filename -Algorithm SHA256
Windows CMD certutil -hashfile filename SHA256

Κατακερματισμός στον κώδικα

Ελάχιστα παραδείγματα σε τέσσερις συνηθισμένες γλώσσες όταν γράφετε σενάρια ή ενσωματώνετε API.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

Το εγγενές Web Crypto του προγράμματος περιήγησης υποστηρίζει μόνο την οικογένεια SHA και απαιτεί HTTPS ή localhost· για MD5 χρειάζεται μια βιβλιοθήκη τρίτου κατασκευαστή.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

Οι hash() και hash_file() υποστηρίζουν τα md5, sha1, sha256, sha512 και άλλα· ο κατακερματισμός αρχείου πραγματοποιείται με ροή, οπότε χρησιμοποιεί λίγη μνήμη.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

Η τυπική βιβλιοθήκη hashlib δεν απαιτεί εγκατάσταση· χρησιμοποιήστε τη file_digest() για ροές κατακερματισμού μεγάλων αρχείων (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

Ο κατακερματισμός δεν υπάρχει στην τυπική βιβλιοθήκη· προσθέστε τα crates RustCrypto sha2 and md-5 στο Cargo.toml. Με το χαρακτηριστικό std ενεργοποιημένο, το io::copy ρέει αρχεία στον κατακερματιστή.

FAQ

Τα κείμενα και τα αρχεία μου έχουν ανεβεί;

Όχι. Όλα υπολογίζονται εντός του προγράμματος περιήγησής σας: οι συναρτήσεις οικογένειας SHA χρησιμοποιούν το ενσωματωμένο Web Crypto API, ενώ το MD5 εκτελείται στον JavaScript της σελίδας. Το εργαλείο λειτουργεί ακόμα και όταν δεν υπάρχει σύνδεση δικτύου — δοκιμάστε το με ένα ευαίσθητο αρχείο.

Γιατί το κενό κείμενο έχει ακόμα κατακερματισμό;

Οι αλγόριθμοι κατακερματισμού ορίζουν μια μοναδική σταθερή έξοδο ακόμα και για μηδενικά byte. Το MD5 ενός κενού συμβολοσειράς είναι d41d8cd98f00b204e9800998ecf8427e και το SHA-256 ξεκινά με e3b0c442. Αυτό το εργαλείο απλά κρύβει τα αποτελέσματα όταν η είσοδος είναι κενή, για να μην τα αντιγράψετε κατά λάθος.

Μπορεί να δημιουργήσει κατακερματισμό για αρχεία οποιουδήποτε μεγέθους;

Εξαρτάται από τη διαθέσιμη μνήμη του προγράμματος περιήγησης — εγκαταστάτες και εικόνες δίσκου μερικών εκατοντάδων MB είναι συνήθως εντάξει. Τα αρχεία διαβάζονται στη μνήμη σε μία μόνο διέλευση, οπότε για αρχεία πολλών GB προτιμήστε εργαλεία γραμμής εντολών (sha256sum, certutil).

Γιατί τα κατακερματισμένα μηνύματα έχουν διαφορετικά μήκη;

Το μή determinεται από τον αλγόριθμο: το MD5 έχει 32 χαρακτήρες hex, το SHA-1 40, το SHA-256 64 και το SHA-512 128. Δύο χαρακτήρες hex ανά byte — και το μήκος είναι ανεξάρτητο από το μέγεθος της εισόδου: ένα αρχείο ενός byte και ένα αρχείο πολλών GB δίνουν και τα δύο 64 χαρακτήρες με το SHA-256.

Μπορώ να το χρησιμοποιήσω για να δημιουργήσω υπογραφές API;

Ναι. Πολλές ανοιχτές πλατφόρμες υπογράφουν αιτήματα κατακερματίζοντας τις «παράμετροι + μυστικό» με MD5 ή SHA-256. Αυτό το εργαλείο είναι εξαιρετικό για τον έλεγχο μιας τιμής υπογραφής κατά την εντοπισμό σφαλμάτων. Σε παραγωγή, υπολογίστε κατακερματισμούς στη βιβλιοθήκη της πλατφόρμας διακομιστή σας και μην ενσωματώσετε ποτέ το μυστικό στον κώδικα του περιβάλλοντος.

Πώς συγκρίνω ένα checksum με αυτό το εργαλείο;

Μεταβείτε στην καρτέλα «File checksum», σύρετε το αρχείο μέσα και επικολλήστε το checksum από τον επίσημο ιστότοπο στο πεδίο πάνω από τα αποτελέσματα. Το εργαλείο ανιχνεύει αυτόματα τον αλγόριθμο από το μήκος (32 χαρακτήρες MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): η αντίστοιχη σειρά γίνεται πράσινη με την ένδειξη «Passed» όταν συμφωνούν και κόκκινη όταν όχι. Τα πεζοκεφαλαία, τα περιβάλλοντα κενά και οι αλλαγές γραμμής αγνοούνται αυτόματα.

Σχετικά εργαλεία

Άλλα εργαλεία κωδικοποίησης, κρυπτογράφησης και κωδικών πρόσβασης.