AES kryptera / dekryptera

Klistra in text och en lösenfras för att snabbt kryptera eller dekryptera med valt PHP OpenSSL-chiffer. AES är det symmetriska blockchiffer som NIST standardiserade i FIPS 197 och som används i många TLS-, WPA2-, VPN- och diskkrypteringssystem, men den här sidan är ett hjälpverktyg för text med låg risk, inte ett granskat hemlighetsvalv. För känsliga filer eller långlivade hemligheter bör du använda ett offlineverktyg som age, GnuPG eller 7-Zip.

Så krypterar du text med AES

  1. 1

    Välj OpenSSL-chiffer

    Nuvarande alternativ innehåller CBC-, CTR- och GCM-varianter. CBC och CTR är inte autentiserade, och det här verktyget sparar eller verifierar ingen GCM-autentiseringstagg.

  2. 2

    Ange en lösenfras

    Lösenfrasen hashas en gång med SHA-256 för att bilda AES-nyckeln. Det finns ingen PBKDF2, inget salt, ingen Argon2 och ingen arbetsfaktor, så använd en lång slumpmässig lösenfras.

  3. 3

    Klistra in text med låg risk

    Detta är ett serverbaserat Livewire/PHP OpenSSL-verktyg. Klistra inte in lösenord, produktionsnycklar, privata dokument eller hemligheter som du inte skulle skicka till den här webbplatsen.

  4. 4

    Kopiera Base64-resultatet

    Kryptering skapar en slumpmässig IV, lägger den framför den råa chiffertexten och Base64-kodar sedan de kombinerade byten. Dekryptering kräver samma chiffer och lösenfras.

Vad verktyget faktiskt ger som utdata

Den här implementationen använder PHP OpenSSL. Vid kryptering hashar den lösenfrasen med SHA-256, skapar en slumpmässig IV med den längd som valt chiffer kräver, krypterar texten och returnerar:

Base64(IV || chiffertext)

Utdata innehåller inte salt, PBKDF2-parametrar, HMAC eller GCM-autentiseringstagg. Den är inte kompatibel med format från Web Crypto, age, GnuPG, OpenSSL-kommandoradsrecept eller 7-Zip.

AES-alternativ i sammanhang

AES har fast blockstorlek på 128 bitar (16 byte) och standardnyckelstorlekar på 128, 192 och 256 bitar. Den viktiga säkerhetsskillnaden här är inte bara nyckelstorlek, utan om det krypterade meddelandet är autentiserat.

Chifferalternativ Att veta i det här verktyget
AES-128-CBC / AES-192-CBC / AES-256-CBC Vanligt blockläge med slumpmässig IV och PKCS#7-padding. Behöver en separat MAC, som HMAC-SHA-256, för att upptäcka manipulation.
AES-256-CTR Gör AES till ett strömliknande läge. Behöver också separat autentisering och får aldrig återanvända samma IV/räknare med samma nyckel.
AES-128-GCM / AES-256-GCM GCM är normalt ett AEAD-läge, men bara när autentiseringstaggen sparas och kontrolleras. Verktygets utdata innehåller inte den taggen, så lita inte på det för autentiserad kryptering.

Säkerhetspåminnelser

OWASP:s vägledning för kryptografisk lagring rekommenderar autentiserad kryptering när det går, eller kryptering plus en separat MAC. Ha det i åtanke med detta verktyg:

  • Detta är symmetrisk kryptering - samma lösenfras dekrypterar. Dela den via en annan kanal än chiffertexten.
  • En svag lösenfras blir en svag nyckel här - SHA-256 är snabbt och osaltat, så en angripare kan testa gissningar snabbt om de får utdata.
  • CBC och CTR behöver autentisering - utan HMAC eller annan MAC kan en angripare ibland ändra chiffertext utan upptäckt.
  • Återanvänd inte IV eller nonce med samma nyckel - verktyget skapar en ny slumpmässig IV vid kryptering, men inklistrad extern data måste följa samma regel.
  • Använd granskade verktyg för riktiga hemligheter - age, GnuPG och 7-Zip hanterar filformat, metadata och autentisering mer omsorgsfullt.

Vanliga frågor

Den aktuella komponenten hashar lösenfrasen med SHA-256 och använder de resulterande byten som nyckelmaterial för OpenSSL. Den använder inte PBKDF2, salt, scrypt eller Argon2, så en kort eller återanvänd lösenfras är riskabel.

Nej. CBC och CTR behöver en separat MAC, till exempel HMAC-SHA-256. Även om GCM normalt ger AEAD-autentisering sparar eller kontrollerar verktyget inte GCM-taggen i Base64-utdata.

På webbplatsens server när Livewire-åtgärden kör PHP OpenSSL. Detta är inte ett Web Crypto-verktyg som bara körs i webbläsaren, så klistra inte in värdefulla hemligheter, privata nycklar eller känsliga dokument.

Base64-resultatet innehåller den slumpmässiga IV:n följd av den råa chiffertexten. CBC-padding kan lägga till byte, och Base64 gör binärdata ungefär en tredjedel större. Det sparade formatet innehåller inget salt och ingen autentiseringstagg.

Det här verktyget hanterar bara text och bör hållas till utdrag med låg risk. För filer eller viktiga hemligheter bör du använda ett granskat offlineverktyg som age, GnuPG eller 7-Zip.

Relaterade verktyg