Gratis privatlivsværktøj

Krypter en fil i din browser

Vælg en fil, vælg en adgangssætning, og hent en krypteret kopi. AES-256-GCM, med nøglen afledt i din browser. Intet uploades, og det virker offline, når siden først er indlæst. Formatet er dokumenteret byte for byte herunder, så du ikke behøver at tage vores ord for noget.

Kører udelukkende i denne fane. Intet uploades, og det virker offline, når siden er indlæst.

Enhver fil. Store filer kræver hukommelse. Se de ærlige begrænsninger herunder.

Der findes ingen gendannelse. En glemt adgangssætning betyder en fil, ingen, heller ikke vi, nogensinde kan åbne.

Hver parameter, oplyst

Ciffer
AES-256-GCM (WebCrypto), 128-bit-tag
Nøgleafledning
PBKDF2-HMAC-SHA-256, 600.000 iterationer
KDF-salt
16 byte, CSPRNG, nyt pr. fil
GCM-nonce
12 byte, CSPRNG, ny pr. fil
Autentificerede data
hele den 42 byte store header, så manipulation med enhver oplyst parameter ødelægger dekrypteringen
Kodning af adgangssætning
UTF-8, NFC-normaliseret (så den samme sætning tastet på enhver enhed afleder den samme nøgle)

Ærlige begrænsninger

Dette er ikke Sealby-appens boksformat. Appen afleder nøgler med Argon2id kalibreret pr. enhed, pakker dem ind i Secure Enclave og gemmer indhold i benægtelige, opdelte containere. Intet af det kan en webside gøre. Denne side er et selvstændigt værktøj bygget på det, browsere tilbyder indbygget.

PBKDF2 er ikke hukommelseshård. Det er den eneste nøgleafledningsfunktion, browsere leverer indbygget, og 600.000 iterationer gør hvert gæt langsomt, men en GPU-maskine angriber den stadig langt hurtigere end Argon2id. Så beskyttelsen ligger i din adgangssætning: fire tilfældige ord eller flere, ikke en adgangskode.

WebCrypto krypterer i ét hug. Der er ingen streaming, så hele filen ligger i hukommelsen to til tre gange under behandlingen. Hundredvis af megabyte er fint på de fleste enheder. Til arkiver på flere gigabyte skal du bruge et desktopværktøj. Det krypterede output afslører desuden filens omtrentlige størrelse. Navnet er krypteret indeni, men størrelsen er ikke skjult.

Formatet, byte for byte

Alt, hvad en teknisk læser skal bruge for selv at verificere denne sides output eller dekryptere det på tyve linjer Python:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8version0x01
9algoritme0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterationeruint32, big-endian (600.000)
14–29salt16 byte
30–41nonce12 byte
42–slutchiffertekstAES-256-GCM af nyttelasten, AAD = byte 0–41; de sidste 16 byte er GCM-tagget

Nyttelast før kryptering: [2 byte navnelængde, big-endian][filnavn, UTF-8][filbytes]. Det oprindelige filnavn rejser krypteret med og gendannes ved dekryptering.

Referencedekryptering (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. Boksen er produktet.

Én fil, én adgangssætning, én side. Det er, hvad en browser kan. Sealby gør det ordentligt: Argon2id kalibreret til din enhed, nøgler i Secure Enclave og skjulte bokse uden nogen gemt liste eller optælling.

Hent i App Store

iPhone & iPad · iOS 17+ · Gratis