SRI-Hashgenerator

Fügen Sie den exakten Skript- oder CSS-Text ein, um dessen UTF-8-Bytes zu hashen. Die URL dient nur dem Codebeispiel; ihr Inhalt wird nicht abgerufen.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
Asset-QuelltextFügen Sie die exakten Bytes als Text eines Skripts oder Stylesheets ein. Der Hash ändert sich bei jedem Zeichen.
Algorithmen

So erzeugen Sie SRI-Integritätshashes

Die Seite wandelt eingefügten JavaScript- oder CSS-Text mit der Web-Crypto-API in Subresource-Integrity-Werte um. Der Text wird als UTF-8 kodiert, die Bytes werden mit SHA-256, SHA-384 oder SHA-512 gehasht, und jeder Wert erscheint als Base64 in der Form sha256-…, die das integrity-Attribut erwartet.

Alles läuft in diesem Tab: Der Text wird nicht hochgeladen, während der Arbeit geht keine Anfrage hinaus, und die optionale Ressourcen-URL landet nur in dem HTML-Schnipsel, das Sie neben das Skript oder Stylesheet setzen, das Sie schützen.

  1. Fügen Sie den genauen Dateiinhalt in das Quellfeld ein. Eine Textfläche trägt keine Binärdaten, dafür aber lesbares JavaScript, CSS, JSON oder HTML.
  2. Wählen Sie die benötigten Algorithmen. Für die meisten Dateien genügt SHA-256; bei mehreren wählt der Browser den stärksten, den er unterstützt.
  3. Optional: Fügen Sie die URL ein, unter der die Datei ausgeliefert wird — sie entscheidet, ob das Schnipsel ein Skript- oder ein Stylesheet-Tag wird.
  4. Klicken Sie auf Integrität erzeugen. Die Ausgabe zeigt pro Algorithmus eine Zeile, das integrity-Attribut und das Tag-Schnipsel.
  5. Kopieren oder laden Sie das Ergebnis als sri-integrity.txt und vergleichen Sie den Hash vor dem Deployment mit dem Ihres Build-Werkzeugs.

Was die Hashes abdecken und was die Seite prüft

Was die Seite hasht

Die Eingabe wird als Text gelesen und mit TextEncoder kodiert; der Hash deckt also die UTF-8-Bytes dessen ab, was im Feld steht. Fügen Sie abc ein, lautet die erste Zeile sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= — derselbe Wert, den printf abc | openssl dgst -sha256 -binary | base64 ausgibt. Jeder Hash ist Base64 des rohen Digests, mit einem Bindestrich an den Algorithmusnamen gehängt: das Format des integrity-Attributs.

Ein einziges Zeichen ändert den Hash, auch ein Zeilenende. Eine Datei mit CRLF-Zeilenenden oder eine vom Editor neu umbrochene Kopie ergibt einen anderen Hash als die ausgelieferte Datei. Wenn ein Hash in der Produktion scheitert, vergleichen Sie die Bytes, nicht den Text auf dem Bildschirm.

URL und Schnipsel

Das URL-Feld wird nur benutzt, um das Tag für Ihr HTML zu bauen. Die Seite ruft die URL nicht ab: Während der Arbeit verlässt keine Anfrage den Browser. Eine URL, die auf .css endet, mit optionaler Query oder Fragment, ergibt ein Tag <link rel="stylesheet" href="…" integrity="…" crossorigin="anonymous">; alles andere ergibt ein Tag <script src="…">.

Akzeptiert werden nur http://, https://, //host, /pfad sowie ./pfad oder ../pfad; Anführungszeichen, Leerzeichen und spitze Klammern werden abgelehnt, und die Attributwerte werden vor dem Schreiben maskiert. Bei ungültiger URL bricht der Lauf mit einer Meldung ab, statt ein kaputtes Tag zu kopieren, und das frühere Ergebnis verschwindet aus der Anzeige.

Was SRI von dieser Seite aus nicht kann

Subresource Integrity ist eine Prüfung des Browsers: Ein Skript oder Stylesheet läuft nur, wenn seine Bytes zum Integritätswert passen. Die Hashes belegen Integrität, nicht Authentizität — wer die Datei ändern kann, kann den Hash neu berechnen. Nichts hier prüft, ob die eingegebene URL diese Bytes ausliefert; die Datei wird nie heruntergeladen.

Da die Eingabe ein Textfeld ist, kann das Werkzeug keine Binärdatei, kein komprimiertes Bündel und keine Datei in einer anderen Kodierung hashen — öffnen Sie solche Dateien in einer Shell und nutzen Sie denselben Digest-Befehl. Auch das URL-Feld prüft nichts; es erspart Ihnen nur das Schreiben des Tags.

Zuletzt verwendet: