Tekst versleutelen
Versleutel en ontsleutel tekst met een wachtzin in je browser, met AES-256-GCM en PBKDF2 met 600.000 iteraties. Er wordt niets geüpload.
Gebruik een lange wachtzin, zoals vijf of meer willekeurige woorden. Niemand kan een vergeten wachtzin terughalen, en de versleutelde tekst is maar zo sterk als de wachtzin.
Zo versleutel en ontsleutel je tekst
- Typ of plak je bericht in het eerste vak, of klik op Een .txt-bestand openen.
- Voer een Wachtzin in, en dezelfde nog een keer bij Bevestig de wachtzin (voor versleutelen). Vink Wachtzinnen tonen aan om te controleren wat je hebt getypt. De sterkteregel geeft een ruw idee van hoe moeilijk de wachtzin te raden is.
- Klik op Versleutelen. Het afleiden van de sleutel duurt bewust ongeveer een seconde (zie hieronder). Het Resultaat is een tekstblok dat begint met BEGIN ENCRYPTED TEXT. Kopieer het naar een e-mail, chat of notitie, of gebruik .txt downloaden om het als bestand te bewaren.
- Om het terug te lezen, plak je het hele blok (of open je het .txt-bestand) in het eerste vak, voer je de wachtzin in en klik je op Ontsleutelen. Het bevestigingsvak is voor ontsleutelen niet nodig.
Is de wachtzin fout, of is ook maar één teken van het blok gewijzigd, dan krijg je een duidelijke foutmelding in plaats van onleesbare tekst.
Wat er met je tekst gebeurt
Alles draait in je browser met de ingebouwde Web Crypto API. De tekst en de wachtzin worden nergens naartoe verzonden. De tool gebruikt standaard, goed onderzochte bouwstenen:
- Sleutelafleiding: PBKDF2 met HMAC-SHA-256 en 600.000 iteraties, de instelling die de OWASP Password Storage Cheat Sheet aanraadt voor PBKDF2-HMAC-SHA256. Bij elke versleuteling wordt een nieuwe willekeurige salt van 16 bytes gemaakt, zodat dezelfde wachtzin elke keer een andere sleutel geeft en vooraf berekende tabellen nutteloos zijn. De 600.000 rondes maken elke gok naar de wachtzin traag voor een aanvaller, en zijn de reden dat versleutelen even duurt.
- Versleuteling: AES-256 in GCM-modus (NIST SP 800-38D) met een nieuwe willekeurige IV van 12 bytes. GCM is geauthenticeerde versleuteling: een tag van 16 bytes detecteert elke wijziging. De kleine header (formaatversie, aantal iteraties, salt en IV) wordt ook geauthenticeerd.
- Uitvoer: Base64 met een header. Het blok vermeldt de formaatversie, zodat toekomstige versies van deze tool de berichten van vandaag nog kunnen lezen. Dezelfde tekst twee keer versleutelen geeft twee verschillende blokken, en dat is de bedoeling.
Eerlijke beperkingen
Deze tool is bedoeld voor alledaagse privacy: een wifi-wachtwoord naar een vriend sturen, een persoonlijke notitie onleesbaar houden voor nieuwsgierige blikken, of een kort geheim delen via een kanaal dat je niet helemaal vertrouwt, terwijl je de wachtzin op een andere manier doorgeeft (persoonlijk of telefonisch).
- De wachtzin is alles. AES-256 zelf is niet het zwakke punt; een te raden wachtzin wel. Een korte of veelgebruikte wachtzin kan ondanks de 600.000 iteraties offline worden gekraakt door iedereen die het versleutelde blok heeft. Gebruik vijf of meer willekeurige woorden, of een lang willekeurig wachtwoord uit een generator. De sterkteschatting is maar een hint: ze ziet niet dat “Zomer2024!” een veelgebruikt patroon is.
- Geen herstel. Er is geen achterdeur, geen reset en geen kopie van je wachtzin. Vergeet je hem, dan ben je de tekst voorgoed kwijt.
- Je apparaat moet betrouwbaar zijn. Malware, een browserextensie of iemand die over je schouder meekijkt, kan de tekst lezen voordat hij wordt versleuteld.
- Metadata wordt niet verborgen. De lengte van het blok verraadt ongeveer de lengte van het bericht.
- Geen vervanging voor gevestigde tools. Gebruik voor bestanden, back-ups, archieven voor de lange termijn of alles wat gevoelig is (juridisch, medisch, bedrijfsgeheimen) geauditeerde tools die daarvoor zijn gemaakt: age, GnuPG (OpenPGP), of de end-to-endversleuteling van een berichtenapp zoals Signal.
Veelgestelde vragen
Is deze versleuteling veilig?
De algoritmen zijn dezelfde die banken en overheden gebruiken, toegepast op de aanbevolen manier (willekeurige salt en IV, geauthenticeerde versleuteling). In de praktijk is de veiligheid die van je wachtzin en van het apparaat dat je gebruikt.
Waarom is mijn wachtzin “fout” terwijl ik zeker weet dat hij klopt?
Wachtzinnen zijn hoofdlettergevoelig en spaties tellen mee. Controleer Caps Lock en de toetsenbordindeling (bijvoorbeeld AZERTY in België of QWERTY in Nederland), en zorg dat het hele blok is gekopieerd, van BEGIN tot END. Een afgekapt of gewijzigd blok geeft bewust dezelfde fout als een verkeerde wachtzin.
Kun je mijn tekst ontsleutelen als ik de wachtzin kwijt ben?
Nee. Niemand kan dat: de wachtzin wordt nergens opgeslagen, en alle mogelijkheden proberen is precies wat het ontwerp onhaalbaar maakt.
Kan ik het blok met een ander programma ontsleutelen?
Het formaat is op de pagina beschreven en gebruikt standaardbouwstenen: 1 versiebyte, een aantal iteraties van 4 bytes, de salt van 16 bytes, de IV van 12 bytes en dan de AES-GCM-ciphertext met de tag van 16 bytes, alles in Base64; de header van 33 bytes wordt als additional authenticated data meegegeven. Een ontwikkelaar kan het met een paar regels code ontsleutelen met OpenSSL, het Python-pakket cryptography of Web Crypto.
Is het beter dan een caesarcijfer of ROT13?
Totaal anders: die vermommen alleen letters en zijn in een paar seconden gekraakt. AES-GCM met een sterke wachtzin is moderne cryptografie die je niet kraakt door verschuivingen te proberen of naar letterfrequenties te kijken.
Vergelijkbare tools
- Wachtwoord generator Gratis wachtwoord generator die in je browser sterke, willekeurige wachtwoorden van 4 tot 128 tekens maakt. Er wordt niets opgeslagen of verzonden.
- Wachtzin generator Maak sterke, makkelijk te onthouden wachtzinnen uit de Engelse EFF-woordenlijst of een Franse lijst, met de entropie in bits. Veilig in je browser.
- Hash-generator Bereken MD5-, SHA-1-, SHA-256- en SHA-512-hashes van tekst of bestanden van elke grootte en controleer checksums. Alles draait in je browser.
- Caesarcijfer en ROT13 Versleutel en ontsleutel tekst met het caesarcijfer, ROT13 of ROT47, bekijk het verschoven alfabet en kraak een onbekende sleutel door alle 25 te proberen.