SRI Hash Generator
Δημιουργήστε ένα κατακερματισμό ακεραιότητας υποπόρων για οποιοδήποτε αρχείο JS ή CSS και αποκτήστε ένα έτοιμο για επικόλληση σενάριο ή ετικέτα συνδέσμου.
Αποτέλεσμα
Το Subresource Integrity (SRI) επιτρέπει σε ένα πρόγραμμα περιήγησης να επαληθεύει ότι ένα σενάριο ή ένα φύλλο στυλ που έχει ληφθεί από έναν κεντρικό υπολογιστή CDN ή τρίτου κατασκευαστή δεν έχει τροποποιηθεί πριν από την εκτέλεσή του — το πρόγραμμα περιήγησης κατακερματίζει τα ληφθέντα byte και αρνείται να εκτελέσει το αρχείο εάν η σύνοψη δεν ταιριάζει με το χαρακτηριστικό ακεραιότητας που δημοσιεύσατε. Αυτό το εργαλείο υπολογίζει την πέψη για οποιοδήποτε αρχείο JS ή CSS που αποθέτετε, εξ ολοκλήρου μέσα στην καρτέλα του προγράμματος περιήγησής σας, επομένως το ίδιο το αρχείο δεν χρειάζεται ποτέ να αφήσει το μηχάνημά σας για κατακερματισμό.
Ένα γενικό εργαλείο κατακερματισμού δεν θα παράγει μια χρησιμοποιήσιμη τιμή SRI: η προδιαγραφή απαιτεί μια σύνοψη με κωδικοποίηση βάσης 64, όχι τη δεκαεξαδική συμβολοσειρά που εκτυπώνουν τα περισσότερα εργαλεία αθροίσματος ελέγχου και αναγνωρίζει μόνο τρεις αλγόριθμους — sha256, sha384 και sha512. Αυτή η γεννήτρια περιορίζει την επιλογή αλγορίθμου ακριβώς σε αυτά τα τρία και κωδικοποιεί το αποτέλεσμα με τον σωστό τρόπο και, στη συνέχεια, προχωρά ένα βήμα παραπέρα συνθέτοντας την πλήρη ετικέτα HTML γύρω της, με ένα πεδίο κράτησης θέσης src ή href που μπορείτε να επεξεργαστείτε στη θέση του πριν αντιγράψετε.
Κάτω από την κουκούλα, το αρχείο διαβάζεται με το File API, κατακερματίζεται με την εγγενή υλοποίηση crypto.subtle.digest() και τα byte που προκύπτουν μετατρέπονται σε base64 σε μικρά κομμάτια και όχι με μια ενιαία μεγάλη λειτουργία εξάπλωσης — μια λεπτομέρεια που έχει σημασία όταν ένα ομαδοποιημένο αρχείο JS μεγαλώσει πάνω από περίπου εκατό χιλιάδες byte, όπου οι απλές προσεγγίσεις μετατροπής μπορούν να πλήξουν το απλό όριο μετατροπής.
Το sha384 επιλέγεται από προεπιλογή επειδή είναι ο αλγόριθμος που προτείνεται πιο συχνά σε παραδείγματα και τεκμηρίωση SRI, εξισορροπώντας το μήκος σύνοψης έναντι της αντίστασης σε σύγκρουση, αλλά το sha256 και το sha512 απέχουν ένα κλικ εάν ένας πάροχος κατασκευής αγωγών ή CDN ορίσει διαφορετική απαίτηση.