Gratis integritetsverktyg

Kryptera en fil i din webbläsare

Välj en fil, välj en lösenfras och ladda ner en krypterad kopia. AES-256-GCM, med nyckeln härledd i din webbläsare. Inget laddas upp, och det fungerar offline när sidan väl laddats. Formatet är dokumenterat byte för byte nedan, så att du inte behöver tro oss på vårt ord om någonting.

Körs helt i den här fliken. Ingenting laddas upp, och det fungerar offline när sidan laddats.

Vilken fil som helst. Stora filer kräver minne. Se de ärliga begränsningarna nedan.

Det finns ingen återställning. En glömd lösenfras betyder en fil som ingen, inte heller vi, någonsin kan öppna.

Varje parameter, redovisad

Chiffer
AES-256-GCM (WebCrypto), 128-bitars tagg
Nyckelhärledning
PBKDF2-HMAC-SHA-256, 600,000 iterationer
KDF-salt
16 byte, CSPRNG, nytt per fil
GCM-nonce
12 byte, CSPRNG, nytt per fil
Autentiserade data
hela det 42 byte stora huvudet, så att manipulera någon angiven parameter förstör dekrypteringen
Kodning av lösenfras
UTF-8, NFC-normaliserad (så att samma fras skriven på vilken enhet som helst ger samma nyckel)

Ärliga begränsningar

Det här är inte Sealby-appens valvformat. Appen härleder nycklar med Argon2id kalibrerad per enhet, kapslar in dem i Secure Enclave och lagrar innehåll i förnekbara, uppdelade behållare. Inget av det kan en webbsida göra. Den här sidan är ett fristående verktyg byggt på det webbläsare erbjuder inbyggt.

PBKDF2 är inte minneshård. Det är den enda nyckelhärledningsfunktion som webbläsare levererar inbyggt, och 600,000 iterationer gör varje gissning långsam, men en GPU-rigg attackerar den ändå långt snabbare än Argon2id. Så skyddet ligger i din lösenfras: fyra slumpmässiga ord eller fler, inte ett lösenord.

WebCrypto krypterar i ett svep. Det finns ingen strömning, så hela filen ligger i minnet två till tre gånger om under bearbetningen. Hundratals megabyte går bra på de flesta enheter. För arkiv på flera gigabyte, använd ett skrivbordsverktyg. Den krypterade utdatan avslöjar också filens ungefärliga storlek. Namnet är krypterat inuti, men storleken är inte dold.

Formatet, byte för byte

Allt en teknisk läsare behöver för att verifiera sidans utdata på egen hand, eller dekryptera den med tjugo rader Python:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8version0x01
9algoritm0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterationeruint32, big-endian (600,000)
14–29salt16 byte
30–41nonce12 byte
42–slutchiffertextAES-256-GCM av nyttolasten, AAD = byte 0–41; de sista 16 byten är GCM-taggen

Nyttolast före kryptering: [2 byte namnlängd, big-endian][filnamn, UTF-8][filens byte]. Originalfilnamnet följer med krypterat; vid dekryptering återställs det.

Referensdekryptor (Python, biblioteket cryptography)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0]          # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42])     # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)

Det här är demon. Valvet är produkten.

En fil, en lösenfras, en sida. Det är vad en webbläsare klarar. Sealby gör det ordentligt: Argon2id kalibrerad för din enhet, nycklar i Secure Enclave och dolda valv utan någon sparad lista eller räkning.

Hämta i App Store

iPhone & iPad · iOS 17+ · Gratis