Hashes, HMAC, Verschlüsselung und JWT lassen sich im Browser prüfen. Halten Sie Eingaben auf dem Gerät und wählen Sie den Algorithmus passend zum Zweck.
Eine Hashfunktion erzeugt aus Eingaben unterschiedlicher Länge einen Digest fester Größe. Gleiche Bytes ergeben denselben Hash; schon eine andere Zeilenendung kann das Ergebnis ändern. Der Hash-Generator hilft beim Vergleich von Prüfsummen und Testdaten.
MD5 liefert 128 Bit beziehungsweise 32 Hexadezimalzeichen, SHA-1 liefert 160 Bit. Beide haben bekannte Kollisionsangriffe und eignen sich nicht für neue Signaturen oder Integritätsprüfungen gegen Angreifer. Für einfache Prüfungen auf versehentliche Änderungen kann MD5 weiterhin vorkommen.
SHA-256 und SHA-512 gehören zu SHA-2 und liefern 256 beziehungsweise 512 Bit. SHA-512 kann auf 64-Bit-Hardware schneller sein; messen Sie die tatsächliche Implementierung. Ein schneller Hash allein ist kein Passwortspeicher: Nutzen Sie dafür Argon2id, scrypt oder passend konfiguriertes bcrypt mit Salt.
HMAC kombiniert eine Hashfunktion mit einem gemeinsam geheimen Schlüssel. Ein gültiger Wert zeigt, dass die Nachricht unverändert ist und von jemandem mit diesem Schlüssel stammt; er beweist keine öffentliche Identität. Zum Nachrechnen während der Entwicklung dient der HMAC-Generator.
AWS Signature Version 4 verwendet HMAC-SHA256 mit abgeleiteten Schlüsseln und einer kanonischen Anfrage. Methode, Pfad, Header und Body-Hash müssen nach dem vorgegebenen Verfahren eingehen. Nur den Body zu hashen reicht für eine AWS-Signatur nicht aus.
GitHub übermittelt die Webhook-Signatur in X-Hub-Signature-256; Stripe nutzt Stripe-Signature und bezieht einen Zeitstempel ein. Prüfen Sie die unveränderten Request-Bytes nach der jeweiligen Spezifikation, vergleichen Sie Signaturen zeitkonstant und berücksichtigen Sie den Schutz vor Wiederholungen. JWT HS256 verwendet ebenfalls HMAC-SHA256.
AES ist symmetrisch: Derselbe geheime Schlüssel dient zum Ver- und Entschlüsseln. Wählen Sie neben der Schlüssellänge einen geeigneten Modus. Bei AES-GCM schützt ein Authentifizierungstag die Integrität; der Nonce darf unter demselben Schlüssel nicht wiederverwendet werden. Nutzen Sie das AES-Werkzeug zum Nachvollziehen von Testfällen.
RSA arbeitet mit einem öffentlichen und einem privaten Schlüssel. Wegen Größenbeschränkungen und höherem Aufwand verschlüsselt man damit normalerweise keinen großen Dateiinhalt, sondern einen zufälligen symmetrischen Schlüssel. AES übernimmt anschließend die eigentlichen Daten.
Verwenden Sie kein rohes RSA ohne Padding. Das RSA-Werkzeug nutzt RSA-OAEP; achten Sie beim Austausch auf passende Hashparameter und Schlüsselformate. RSA-OAEP zur Verschlüsselung ist etwas anderes als eine RSA-Signatur. Private Schlüssel und entschlüsselte Daten müssen geschützt bleiben.
Ein signiertes JWT im kompakten JWS-Format besteht aus drei durch Punkte getrennten Base64url-Teilen: Header, Payload und Signatur. {"alg":"HS256","typ":"JWT"} bezeichnet HMAC-SHA256; RS256 steht für eine RSA-Signatur mit SHA-256.
Die Payload enthält Claims wie sub für das Subjekt, iss für den Aussteller, aud für den Empfänger sowie exp und iat als Zeitangaben. Der JWT-Decoder macht diese Daten lesbar. Dekodieren ist jedoch keine Signaturprüfung und kein Nachweis, dass ein Token akzeptiert werden darf.
Legen Sie erlaubte Algorithmen serverseitig fest und prüfen Sie Signatur, Aussteller, Empfänger und Ablaufzeit. Übernehmen Sie alg nicht ungeprüft aus dem Token und akzeptieren Sie none nicht versehentlich. Eine JWS-Signatur verschlüsselt die Payload nicht; für Vertraulichkeit ist eine passende Verschlüsselung wie JWE erforderlich.
Nein. SHA-256 ist ein schneller Allzweck-Hash, was das Brute-Forcing von Passwörtern erleichtert. Verwenden Sie stattdessen bcrypt, scrypt oder Argon2 — diese sind bewusst langsam und speicherintensiv ausgelegt. Unser Passwort-Generator erstellt starke Passwörter; die Speicherung sollte auf Ihrem Server bcrypt/Argon2 verwenden.
Kodierung (wie Base64) wandelt Daten aus Kompatibilitätsgründen um — sie ist ohne Schlüssel umkehrbar. Verschlüsselung (wie AES) schützt die Vertraulichkeit — sie ist nur mit dem richtigen Schlüssel umkehrbar. Verwenden Sie Base64 niemals als Sicherheitsmaßnahme.
Lesen Sie exp mit dem JWT-Decoder und vergleichen Sie den Wert mit der aktuellen Unix-Zeit. Eine noch gültige Zeitspanne beweist keine gültige Signatur; prüfen Sie Signatur, Aussteller und Empfänger serverseitig.
Ja, wenn crypto.getRandomValues() verwendet wird, was unser Passwort-Generator nutzt. Dies ist der CSPRNG des Browsers, dieselbe Entropiequelle, die das Betriebssystem für die Schlüsselerzeugung verwendet.
AES-256 für alle neuen Anwendungen. AES-128 ist technisch sicher gegen bekannte Angriffe, aber AES-256 bietet einen größeren Sicherheitsspielraum. Der Leistungsunterschied ist auf moderner Hardware vernachlässigbar.