HMAC Generator & Verifier
Δημιουργήστε και επαληθεύστε κωδικούς ελέγχου ταυτότητας μηνυμάτων HMAC με SHA-256, SHA-384, SHA-512 ή SHA-1 χρησιμοποιώντας ένα μυστικό κλειδί, εξ ολοκλήρου στο πρόγραμμα περιήγησής σας.
Αποτέλεσμα
Ένας HMAC (Κωδικός ελέγχου ταυτότητας μηνυμάτων που βασίζεται σε κατακερματισμό) είναι μια κρυπτογραφική κατασκευή με κλειδί που συνδυάζει ένα μυστικό κλειδί με ένα μήνυμα μέσω μιας συνάρτησης κατακερματισμού όπως το SHA-256. Σε αντίθεση με έναν απλό κατακερματισμό, τον οποίο ο καθένας μπορεί να υπολογίσει εκ νέου μόνο από το μήνυμα, ένα HMAC μπορεί να αναπαραχθεί μόνο από κάποιον που έχει το ίδιο μυστικό κλειδί – αυτό είναι που το κάνει κωδικό ελέγχου ταυτότητας και όχι απλώς άθροισμα ελέγχου.
Αυτή είναι η θεμελιώδης διαφορά από μια απλή σύνοψη: το δικό μας εργαλείο Hash Generator υπολογίζει κατακερματισμούς χωρίς κλειδί όπως το MD5 ή το SHA-256, που είναι εξαιρετικά για τον εντοπισμό τυχαίας διαφθοράς, αλλά δεν αποδεικνύουν τίποτα σχετικά με το ποιος παρήγαγε τα δεδομένα, καθώς ο καθένας μπορεί να δημιουργήσει τον ίδιο κατακερματισμό. Ένα HMAC αποδεικνύει τόσο την ακεραιότητα (το μήνυμα δεν άλλαξε) όσο και την αυθεντικότητα (ο υπογράφων γνώριζε το κοινό μυστικό), γι' αυτό το HMAC είναι το τυπικό δομικό στοιχείο πίσω από την υπογραφή αιτήματος API, τους αλγόριθμους HS256/HS384/HS512 του JWT και τον έλεγχο ταυτότητας εγγραφής TLS.
Η πιο κοινή περίπτωση χρήσης στον πραγματικό κόσμο είναι η επαλήθευση υπογραφών webhook. Υπηρεσίες όπως το Stripe, το GitHub και το Shopify υπογράφουν κάθε ωφέλιμο φορτίο webhook με το HMAC-SHA256 χρησιμοποιώντας ένα μυστικό που διαμορφώνετε και στέλνουν την υπογραφή που προκύπτει σε μια κεφαλίδα αιτήματος. Ο διακομιστής σας αναμένεται να υπολογίσει εκ νέου το HMAC στο ακατέργαστο ωφέλιμο φορτίο με το ίδιο μυστικό και να το συγκρίνει με την τιμή της κεφαλίδας — εάν ταιριάζουν, γνωρίζετε ότι το αίτημα προήλθε πραγματικά από αυτήν την υπηρεσία και δεν παραποιήθηκε κατά τη μεταφορά. Η λειτουργία επαλήθευσης αυτού του εργαλείου αναπαράγει ακριβώς αυτόν τον έλεγχο: επικολλήστε το ωφέλιμο φορτίο, το κοινόχρηστο μυστικό και τη ληφθείσα υπογραφή και λάβετε μια άμεση αντιστοίχιση ή αναντιστοιχία.
Όλα εκτελούνται τοπικά μέσω του εγγενούς Web Crypto API του προγράμματος περιήγησης (crypto.subtle.importKey και crypto.subtle.sign), επομένως το μυστικό κλειδί, το σώμα του μηνύματος και η υπογραφή που προκύπτει δεν φεύγουν ποτέ από το μηχάνημά σας — τίποτα δεν μεταφορτώνεται σε κανένα διακομιστή, κάτι που έχει σημασία, καθώς τα μυστικά HMAC είναι ακριβώς το είδος της τιμής που δεν πρέπει ποτέ να επικολλήσετε σε ένα τυχαίο διαδικτυακό εργαλείο.