Hash-Avalanche
Jedes UTF-8-Eingabebit umkehren und vollständige SHA-256-Hashes, XOR-Masken und Hamming-Abstände vergleichen.
Über dieses Tool
Bis zu 256 UTF-8-Bytes eingeben und Analysieren wählen. Das Werkzeug berechnet den SHA-256-Hash der ursprünglichen Eingabe, kehrt anschließend jedes Eingabebit einzeln um und hasht die geänderten Bytes. Alle Eingabebits werden geprüft: bis zu 2048 Änderungen. Die Byteanzeige zählt den vollständigen Text; zu lange Eingaben werden abgelehnt und niemals still gekürzt.
Der Eingabebitindex beginnt bei 0 und durchläuft die Bytes der Reihe nach. Innerhalb jedes Bytes ist Bit 0 das niederwertigste Bit (LSB): Die Masken sind 1, 2, 4, 8, 16, 32, 64 und 128. Jeder Versuch beginnt mit den ursprünglichen Bytes und ändert genau ein Bit. Die geänderte Bytefolge wird unmittelbar gehasht, auch wenn sie kein gültiges UTF-8 mehr ist. Sie wird niemals zurück in Text dekodiert.
Text wird mit der üblichen UTF-8-Kodierung des Browsers umgesetzt; ungepaarte UTF-16-Surrogate werden dabei ersetzt. Es findet keine Unicode-Normalisierung statt. Optisch gleicher Text kann daher verschiedene Bytes und Hashes haben. Ursprüngliche und geänderte Eingabe erscheinen vollständig hexadezimal, mit zwei Stellen je Byte.
SHA-256 liefert 256 Ausgabebits. Das XOR aus ursprünglichem und geändertem Hash enthält genau dort eine 1, wo sich die Hashes unterscheiden. Die Anzahl dieser Einsen ist der Hamming-Abstand. Die Maske mit 16 × 16 Feldern wird von links nach rechts und dann von oben nach unten gelesen. Je Ausgabebyte beginnt sie mit dem höchstwertigen Bit, passend zur üblichen Hex-Reihenfolge. Gefüllte Quadrate bedeuten 1, umrandete Quadrate 0.
Die Kurve zeigt jeden Eingabebitwechsel. Ein Versuch lässt sich über den genauen Index, den Regler oder das Diagramm auswählen. Die Auswahl verwendet die fertige Analyse, ohne erneut zu hashen. Mittelwert, Minimum und Maximum beziehen sich auf alle Versuche. Die Referenz bei 128 Bits entspricht 50 % der Ausgabe: eine statistische Orientierung, kein Sollwert für einen einzelnen Wechsel und kein Nachweis kryptographischer Sicherheit.
Leerer Text ist gültig und hat einen eigenen SHA-256-Hash. Ohne Eingabebits gibt es keine Versuche oder Abstandsstatistik. Eine ungültige Probe blendet ihre Werte und Maske bis zur Korrektur aus. Eingabeänderung, Ergebnisleeren oder Verlassen des Werkzeugs brechen ausstehende Arbeit ab. Eine bereits laufende Browser-Hashberechnung kann intern enden, aber kein abgebrochenes Ergebnis wiederherstellen. Eine Teilanalyse wird nicht als vollständig angezeigt. SHA-256 muss über die Web-Crypto-API des Browsers verfügbar sein. Textentwürfe, der genaue Probenindex, offene Hashdetails und abgeschlossene Analysen bleiben im lokalen Browserspeicher über Neuladen und Sprachwechsel erhalten. Fertige Analysen werden aus den gespeicherten Hashwerten ohne erneutes Hashen wiederhergestellt. Ungültige Entwürfe und Ergebnis leeren warten auf eine neue Analyse. Eine beschädigte Momentaufnahme wird verworfen, ihr Text bleibt erhalten. Entwürfe oberhalb der automatischen Speicherkapazität bleiben beim Navigieren innerhalb der App verfügbar; ihren UTF-8-Text vor Neuladen speichern, das die vorherige Sicherung wiederherstellt.
Quellen: W3C Web Cryptography API: digest und SHA-256; WHATWG Encoding: TextEncoder und UTF-8. NIST: durchgerechnetes SHA-256-Beispiel für abc.
Unter „Bytes und Hashes“ stehen die vollständigen ursprünglichen und geänderten Bytes, Hashes und der XOR-Wert.