AES verschlüsseln

Verschlüsselt oder entschlüsselt mit AES. Ein Einweg-Fingerabdruck ist der Hash-Generator

Was diese Seite verschlüsselt

AES ist eine Blockchiffre. Diese Seite rechnet im Browser in ECB, CBC, CTR, OFB, CFB oder GCM, mit einem Schlüssel von 16, 24 oder 32 Bytes. Ein Einweg-Fingerabdruck liegt beim Hash-Generator.

So geht es

  1. Füge die Eingabe ein. Der Modus startet bei CBC, die Füllung bei pkcs7padding, der Zeichensatz bei UTF-8.
  2. Schlüssel- und IV-Format starten als Text. Die Eingabe startet als Text, die Ausgabe als hex. ECB blendet den IV aus. GCM zeigt Tag-Länge und AAD und erzwingt nopadding.
  3. Verschlüsseln verschlüsselt. Entschlüsseln entschlüsselt. Beispiel anzeigen setzt hello, CBC, pkcs7padding, UTF-8, Schlüssel 1234567890abcdef, IV 1234567890abcdef und das hex 7e6347a62a0a976373e79b1bd586363d.
  4. Tauschen kopiert das Ergebnis in die Eingabe und setzt das Eingabeformat auf das eben erzeugte Format. Stelle das Ausgabeformat auf Text und klicke Entschlüsseln. Derselbe Schlüssel und IV ergeben hello.
  5. Alles löschen leert die Felder und stellt CBC, pkcs7padding, UTF-8, Textformate und hex-Ausgabe wieder her. Ergebnis kopieren kopiert die Ausgabe.

Schlüssel, IV, Füllung und Tag

Text wird mit dem Zeichensatz zu Bytes. hex und Base64 sind schon Bytes, der Zeichensatz gilt dort nicht. Der Schlüssel muss danach 16, 24 oder 32 Bytes haben: AES-128, AES-192 oder AES-256. 1234567890abcdef in UTF-8 sind 16 Bytes.

CBC, CFB, OFB und CTR brauchen einen IV von 16 Bytes. ECB hat keinen IV. GCM nimmt jeden nicht leeren IV; 12 Bytes sind üblich. pkcs5padding und pkcs7padding sind hier gleich: sie ergänzen 1 bis 16 Bytes auf ein Vielfaches von 16. nopadding lässt die Bytes, daher brauchen ECB und CBC schon dieses Vielfache. GCM erlaubt nur nopadding.

Das GCM-Tag hängt am Ende des Geheimtexts. Die Tag-Länge startet bei 128 Bit. AAD wird geprüft und nicht verschlüsselt. Entschlüsseln lehnt Texteingabe ab, Verschlüsseln lehnt Textausgabe ab. Falscher Schlüssel, falscher IV, falsches Tag oder falsche Füllung scheitern.

Wozu es dient

  • Einen CBC-Geheimtext mit einem anderen AES-Werkzeug vergleichen.
  • Ein GCM lesen, dessen Tag am Ende des hex steht.
  • Den Schlüssel zwischen Text, hex und Base64 wechseln.

Fragen

Warum sind pkcs5 und pkcs7 hier gleich?

AES-Blöcke sind 16 Bytes. Beide Füllungen füllen den letzten Block mit demselben Zählbyte.

Liefert derselbe Text immer dasselbe hex?

Ja, wenn Modus, Füllung, Schlüssel und IV gleich bleiben. Beispiel anzeigen liefert 7e6347a62a0a976373e79b1bd586363d.