Utilia

Kryptera text med lösenord

Kryptera och dekryptera text med en lösenfras i webbläsaren med AES-256-GCM och PBKDF2 (600 000 iterationer). Inget laddas upp. Begränsningarna förklaras.

Använd en lång lösenfras, till exempel fem eller fler slumpmässiga ord. Ingen kan återskapa en bortglömd lösenfras, och den krypterade texten är bara så stark som den.

Så krypterar och dekrypterar du text

  1. Skriv eller klistra in ditt meddelande i första rutan, eller klicka på Öppna en .txt-fil.
  2. Skriv en Lösenfras, och samma igen i Bekräfta lösenfrasen (för kryptering). Bocka i Visa lösenfraserna för att kontrollera vad du skrev. Styrkeraden ger en grov bild av hur svår lösenfrasen är att gissa.
  3. Klicka på Kryptera. Att härleda nyckeln tar ungefär en sekund med flit (se nedan). Resultat är ett textblock som börjar med BEGIN ENCRYPTED TEXT. Kopiera det till ett e-postmeddelande, en chatt eller en anteckning, eller Ladda ner .txt för att spara det som en fil.
  4. För att läsa det igen klistrar du in hela blocket (eller öppnar .txt-filen) i första rutan, skriver lösenfrasen och klickar på Dekryptera. Bekräftelserutan behövs inte för dekryptering.

Om lösenfrasen är fel, eller om ens ett enda tecken i blocket har ändrats, får du ett tydligt felmeddelande i stället för förvanskad text.

Vad som händer med din text

Allt körs i din webbläsare med det inbyggda Web Crypto API. Texten och lösenfrasen skickas aldrig någonstans. Verktyget använder standardiserade, väl granskade byggstenar:

  • Nyckelhärledning: PBKDF2 med HMAC-SHA-256 och 600 000 iterationer, inställningen som rekommenderas av OWASP Password Storage Cheat Sheet för PBKDF2-HMAC-SHA256. Ett nytt slumpmässigt salt på 16 byte skapas för varje kryptering, så samma lösenfras ger olika nyckel varje gång och förberäknade tabeller är värdelösa. De 600 000 varven gör varje gissning av lösenfrasen långsam för en angripare, och är anledningen till att krypteringen tar en stund.
  • Kryptering: AES-256 i GCM-läge (NIST SP 800-38D) med en ny slumpmässig IV på 12 byte. GCM är autentiserad kryptering: en tagg på 16 byte upptäcker varje ändring. Den lilla rubriken (formatversion, antal iterationer, salt och IV) autentiseras också.
  • Utdata: Base64 med en rubrik. Blocket anger formatversionen, så framtida versioner av verktyget kan fortfarande läsa dagens meddelanden. Att kryptera samma text två gånger ger två olika block, vilket är förväntat.

Ärliga begränsningar

Verktyget är tänkt för vardaglig integritet: att skicka ett Wi-Fi-lösenord till en vän, hålla en personlig anteckning oläsbar för nyfikna ögon, eller dela en kort hemlighet över en kanal du inte litar helt på, med lösenfrasen given på ett annat sätt (personligen eller per telefon).

  • Lösenfrasen är allt. Själva AES-256 är inte den svaga punkten, utan en gissningsbar lösenfras. En kort eller vanlig lösenfras kan knäckas offline, trots de 600 000 iterationerna, av vem som helst som har det krypterade blocket. Använd fem eller fler slumpmässiga ord, eller ett långt slumpmässigt lösenord från en generator. Styrkeuppskattningen är bara en fingervisning: den kan inte se att ”Sommar2024!” är ett vanligt mönster.
  • Ingen återställning. Det finns ingen bakdörr, ingen nollställning och ingen kopia av din lösenfras. Glömmer du den är texten förlorad för alltid.
  • Din enhet måste vara pålitlig. Skadlig kod, ett webbläsartillägg eller någon som tittar över axeln kan läsa texten innan den krypteras.
  • Metadata döljs inte. Blockets längd avslöjar ungefär meddelandets längd.
  • Ingen ersättning för etablerade verktyg. För filer, säkerhetskopior, långtidsarkiv eller allt känsligt (juridiska, medicinska eller affärshemligheter) använder du granskade verktyg som är byggda för det: age, GnuPG (OpenPGP) eller helkrypteringen i en meddelandeapp som Signal.

Vanliga frågor

Är den här krypteringen säker?

Algoritmerna är de som används av banker och myndigheter, tillämpade på det rekommenderade sättet (slumpmässigt salt och IV, autentiserad kryptering). I praktiken är säkerheten den som din lösenfras och din enhet har.

Varför är min lösenfras ”fel” när jag är säker på att den är rätt?

Lösenfraser är skiftlägeskänsliga och blanksteg räknas. Kontrollera Caps Lock och tangentbordslayouten (till exempel svenskt eller engelskt tangentbord), och se till att hela blocket kopierades, från BEGIN till END. Ett avkortat eller ändrat block ger samma fel som en felaktig lösenfras, och det är med avsikt.

Kan ni dekryptera min text om jag tappar lösenfrasen?

Nej. Ingen kan: lösenfrasen lagras ingenstans, och att prova alla möjligheter är precis det som konstruktionen gör ogenomförbart.

Kan jag dekryptera blocket med ett annat program?

Formatet är dokumenterat på sidan och använder standardiserade primitiver: 1 versionsbyte, ett iterationsantal på 4 byte, saltet på 16 byte, IV på 12 byte och sedan AES-GCM-chifferteksten och dess tagg på 16 byte, allt i Base64. Rubriken på 33 byte skickas som ytterligare autentiserade data. En utvecklare kan dekryptera det med några rader kod med OpenSSL, Pythons cryptography-paket eller Web Crypto.

Är det bättre än en Caesarkryptering eller ROT13?

Helt annorlunda: de förvanskar bara bokstäver och knäcks på några sekunder. AES-GCM med en stark lösenfras är modern kryptografi som inte går att knäcka genom att prova förskjutningar eller titta på bokstävernas frekvens.