CalcMint

AES verschlüsseln und entschlüsseln

Verschlüssle eine Nachricht mit einem Passwort und entschlüssle sie später, oder arbeite mit rohen Schlüsseln und IVs, um deinen eigenen Code zu testen. Alles passiert auf deinem Gerät mit der Web-Crypto-API.

AES verschlüsseln / entschlüsseln

Diesen Rechner auf Ihrer Website einbinden

Kopieren Sie den Code in das HTML Ihrer Seite. Kostenlos – bitte lassen Sie den Quellenlink stehen.

Was der Passwortmodus macht

Dein Passwort wird mit PBKDF2-HMAC-SHA256 und 600.000 Iterationen (OWASP-Empfehlung) und einem zufälligen 16-Byte-Salt zu einem 256-Bit-Schlüssel gestreckt. Der Text wird mit AES-256-GCM und einer zufälligen 12-Byte-Nonce verschlüsselt; das Ergebnis ist Salt + Nonce + Chiffrat + 16-Byte-Tag als Base64. Zweimal derselbe Text ergibt verschiedene Ausgaben, das ist so gewollt.

Anderswo entschlüsseln geht in wenigen Zeilen, etwa in Python mit dem Paket cryptography:

import base64
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC

data = base64.b64decode(chiffrat)
salt, nonce, body = data[:16], data[16:28], data[28:]
key = PBKDF2HMAC(hashes.SHA256(), 32, salt, 600_000).derive(passwort.encode())
print(AESGCM(key).decrypt(nonce, body, None).decode())

AES in Kürze

AES (FIPS 197) ist die 2001 vom NIST standardisierte Blockchiffre. Sie verschlüsselt 16-Byte-Blöcke mit einem 128-, 192- oder 256-Bit-Schlüssel, und der Modus bestimmt die Verkettung: CBC braucht Auffüllung und einen zufälligen IV, CTR macht aus AES eine Stromchiffre und GCM fügt einen Authentifizierungs-Tag hinzu, der jede Änderung erkennt. Wer Passwort oder Schlüssel verliert, verliert die Daten, es gibt keine Wiederherstellung.

Häufige Fragen

Welche Option soll ich wählen?

Für eigene Nachrichten den Standard-Passwortmodus (AES-256-GCM): Er ist authentifiziert und erkennt falsche Passwörter oder manipulierten Text. Das OpenSSL-/CryptoJS-Format dient zum Austausch mit Code, der CryptoJS.AES oder openssl enc nutzt, der Rohschlüssel-Modus zum Abgleich mit einer bestimmten Implementierung.

Lässt sich ein Chiffrat mit U2FsdGVkX1 am Anfang hier entschlüsseln?

Ja, wenn du das Passwort kennst. U2FsdGVkX1 ist „Salted__“ in Base64, der Header von CryptoJS und OpenSSL. Die ältere MD5- und die neuere SHA-256-Schlüsselableitung werden automatisch probiert.

Warum gibt es keinen ECB-Modus?

Browser bieten ihn nicht an, weil er unsicher ist: Gleiche Klartextblöcke ergeben gleiche Chiffratblöcke, Muster bleiben sichtbar. Nimm CBC, CTR oder am besten GCM.

Wird das Eingefügte an einen Server gesendet?

Nein. Das Tool läuft komplett in deinem Browser, mit JavaScript und der eingebauten Web-Crypto-API. Nichts, was du eingibst, einfügst oder öffnest, wird hochgeladen oder gespeichert.

Ähnliche Rechner