DevToolPal
NL

AES versleutelen en ontsleutelen

Versleutel en ontsleutel tekst met AES-GCM of AES-CBC via een wachtzin (PBKDF2) of een hex-sleutel, met Base64-uitvoer.

Draait lokaal, wordt nooit geüpload

Opties

Modus
Algoritme
Sleutel
Sleutellengte

Invoer

0 tekens · 0 B

Uitvoer

0 tekens · 0 B

Wat het doet

AES (Advanced Encryption Standard) is de symmetrische versleuteling die bijna overal wordt gebruikt: HTTPS, schijfversleuteling, wachtwoordmanagers en chat-apps. Dezelfde geheime sleutel versleutelt en ontsleutelt. Deze tool versleutelt tekst tot Base64 die je overal kunt plakken, en ontsleutelt die weer.

Je kunt gebruiken:

  • een wachtzin, die met PBKDF2-HMAC-SHA256 en een willekeurige salt wordt omgezet in een sleutel van 128 of 256 bits, of
  • een hex-sleutel: 32 of 64 hexcijfers (128 of 256 bits), direct gebruikt. Klik op Willekeurige sleutel om er een te maken.

Er zijn twee werkingsmodi. AES-GCM is de moderne standaard en detecteert manipulatie. AES-CBC met PKCS#7-padding is er voor compatibiliteit met oudere systemen.

Zo gebruik je het

  1. Kies Versleutelen of Ontsleutelen, het algoritme en het sleuteltype.
  2. Typ de wachtzin of plak de hex-sleutel bovenaan het invoerveld.
  3. Plak de tekst (of de Base64 om te ontsleutelen). Het resultaat verschijnt rechts; Als invoer gebruiken draait de richting om om de heen-en-terugweg te controleren.

Uitvoerformaat

De uitvoer is één Base64-string, zodat hij e-mail en chat overleeft:

passphrase:  salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key:     IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)

Gebruik om te ontsleutelen hetzelfde algoritme, sleuteltype, dezelfde sleutellengte en hetzelfde aantal iteraties als bij het versleutelen. Deze instellingen staan in het paginaadres, dus een gedeelde link neemt ze mee terwijl de sleutel bij jou blijft.

Een wachtzin kiezen

PBKDF2 maakt elke gok trager, maar redt geen korte of veelgebruikte wachtzin. Gebruik een lange, willekeurige wachtzin, bijvoorbeeld uit een wachtwoordgenerator, en deel die via een ander kanaal dan de versleutelde tekst. Meer iteraties maken raden moeilijker en ontsleutelen iets trager; 100.000 tot 600.000 is gebruikelijk.

Veelgestelde vragen

› Kies ik GCM of CBC?

Kies GCM, tenzij een ander systeem CBC vereist. GCM is geauthenticeerd: een verkeerde sleutel of één gewijzigde byte wordt opgemerkt in plaats van onzin op te leveren. CBC biedt alleen vertrouwelijkheid en is vooral nuttig voor compatibiliteit met oudere code.

› Waarom is de versleutelde tekst elke keer anders?

Elke versleuteling gebruikt een nieuwe willekeurige IV, en met een wachtzin ook een nieuwe willekeurige salt. Beide staan aan het begin van de uitvoer, dus ontsleutelen werkt gewoon. Een IV hergebruiken met dezelfde sleutel, vooral bij GCM, zou een ernstige zwakte zijn.

› Hoe ontsleutel ik de uitvoer in mijn eigen code?

Decodeer de Base64. Met een wachtzin zijn de eerste 16 bytes de PBKDF2-salt, daarna de IV (12 bytes bij GCM, 16 bij CBC) en dan de versleutelde tekst. Leid de sleutel af met PBKDF2-HMAC-SHA256 en hetzelfde aantal iteraties. Met een hex-sleutel is er geen salt. Bij GCM zijn de laatste 16 bytes de authenticatietag.

› Wordt mijn wachtzin of sleutel opgeslagen of verstuurd?

Nee. Versleuteling gebeurt in je browser met de Web Crypto API. De wachtzin of sleutel staat alleen in het geheugen van deze pagina: hij wordt niet opgeslagen, niet in de adresbalk gezet en niet in deellinks opgenomen, dus je kunt een versleuteld bericht delen zonder de sleutel.