Gratis personvernverktøy

Krypter en fil i nettleseren din

Velg en fil, velg en passfrase, og last ned en kryptert kopi. AES-256-GCM, med nøkkelen utledet i nettleseren din. Ingenting lastes opp, og det fungerer offline når siden først er lastet. Formatet er dokumentert byte for byte nedenfor, så du slipper å ta oss på ordet for noe som helst.

Kjører i sin helhet i denne fanen. Ingenting lastes opp, og det fungerer offline når siden er lastet.

Hvilken som helst fil. Store filer krever minne. Se de ærlige begrensningene nedenfor.

Det finnes ingen gjenoppretting. En glemt passfrase betyr en fil som ingen, heller ikke vi, noen gang kan åpne.

Hver parameter, oppgitt

Chiffer
AES-256-GCM (WebCrypto), 128-bits tag
Nøkkelutledning
PBKDF2-HMAC-SHA-256, 600 000 iterasjoner
KDF-salt
16 byte, CSPRNG, ferskt per fil
GCM-nonce
12 byte, CSPRNG, ferskt per fil
Autentiserte data
hele headeren på 42 byte, så å manipulere en hvilken som helst oppgitt parameter bryter dekrypteringen
Koding av passfrase
UTF-8, NFC-normalisert (så den samme frasen tastet på hvilken som helst enhet utleder samme nøkkel)

Ærlige begrensninger

Dette er ikke hvelvformatet i Sealby-appen. Appen utleder nøkler med Argon2id kalibrert per enhet, pakker dem inn i Secure Enclave, og lagrer innhold i benektbare, oppdelte beholdere. Ingenting av det kan en nettside gjøre. Denne siden er et frittstående verktøy bygget på det nettlesere tilbyr innebygd.

PBKDF2 er ikke minnekrevende. Det er den eneste nøkkelutledningsfunksjonen nettlesere leverer innebygd, og 600 000 iterasjoner gjør hver gjetning treg, men en GPU-rigg angriper den fortsatt langt raskere enn Argon2id. Så beskyttelsen ligger i passfrasen din: fire tilfeldige ord eller flere, ikke et passord.

WebCrypto krypterer i én operasjon. Det finnes ingen strømming, så hele filen ligger i minnet i to til tre kopier mens den behandles. Hundrevis av megabyte går fint på de fleste enheter. For arkiver på flere gigabyte, bruk et skrivebordsverktøy. Det krypterte resultatet røper dessuten filens omtrentlige størrelse. Navnet er kryptert inni, men størrelsen er ikke skjult.

Formatet, byte for byte

Alt en teknisk leser trenger for å verifisere resultatet fra denne siden uavhengig, eller dekryptere det på tjue linjer Python:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8versjon0x01
9algoritme0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterasjoneruint32, big-endian (600 000)
14–29salt16 byte
30–41nonce12 byte
42–sluttchiffertekstAES-256-GCM av nyttelasten, AAD = byte 0–41; de siste 16 bytene er GCM-taggen

Nyttelast før kryptering: [2-byte navnelengde, big-endian][filnavn, UTF-8][filbyte]. Det opprinnelige filnavnet reiser kryptert; ved dekryptering gjenopprettes det.

Referansedekrypterer (Python, cryptography-biblioteket)
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)

Dette er demoen. Hvelvet er produktet.

Én fil, én passfrase, én side. Det er hva en nettleser kan få til. Sealby gjør det ordentlig: Argon2id kalibrert til enheten din, nøkler i Secure Enclave, og skjulte hvelv uten noen lagret liste eller telling.

Last ned fra App Store

iPhone og iPad · iOS 17+ · Gratis