Besplatni alat za privatnost

Šifrirajte datoteku u pregledaču

Odaberite datoteku, odaberite pristupnu frazu i preuzmite šifriranu kopiju. AES-256-GCM, s ključem izvedenim u vašem pregledaču. Ništa se ne prenosi, a radi izvan mreže nakon učitavanja. Format je niže dokumentiran bajt po bajt, pa nam ništa ne morate vjerovati na riječ.

Radi u cijelosti u ovoj kartici. Ništa se ne prenosi, a radi izvan mreže nakon učitavanja.

Odaberite datoteku

Bilo koja datoteka. Velike datoteke traže memoriju. Pogledajte poštena ograničenja niže.

Oporavka nema. Zaboravljena pristupna fraza znači datoteku koju niko, ni mi, nikad neće moći otvoriti.

Svaki parametar, naveden

Šifra
AES-256-GCM (WebCrypto), 128-bitna oznaka
Izvođenje ključa
PBKDF2-HMAC-SHA-256, 600,000 iteracija
KDF sol
16 bajtova, CSPRNG, nova za svaku datoteku
GCM nonce
12 bajtova, CSPRNG, nov za svaku datoteku
Autenticirani podaci
cijelo zaglavlje od 42 bajta, pa diranje u bilo koji navedeni parametar onemogućuje dešifriranje
Kodiranje pristupne fraze
UTF-8, NFC-normalizirano (pa ista fraza upisana na bilo kojem uređaju daje isti ključ)

Pošteno o ograničenjima

Ovo nije format sefa iz aplikacije Sealby. Aplikacija izvodi ključeve pomoću Argon2id kalibriranog za svaki uređaj, omata ih u Secure Enclave i čuva sadržaj u spremnicima podijeljenim na blokove, čije se postojanje može poreći. Web-stranica ne može ništa od toga. Ovo je samostalan alat zasnovan na mogućnostima koje preglednici izvorno nude.

PBKDF2 nije memorijski zahtjevan. To je jedina funkcija za izvođenje ključa koju preglednici izvorno nude, a 600,000 iteracija čini svaki pokušaj sporim, ali ga GPU sistem i dalje napada daleko brže nego Argon2id. Zato teret zaštite leži na vašoj pristupnoj frazi: četiri nasumične riječi ili više, a ne lozinka.

WebCrypto šifrira u jednom potezu. Nema protočne obrade, pa cijela datoteka tokom obrade zauzima memoriju dva do tri puta. Stotine megabajta ne predstavljaju problem na većini uređaja. Za arhive od više gigabajta upotrijebite program za računar. Šifrirani rezultat također otkriva približnu veličinu datoteke. Naziv je šifriran unutra, ali veličina nije skrivena.

Format, bajt po bajt

Sve što je tehničkom čitaocu potrebno da nezavisno provjeri rezultat ove stranice ili ga dešifrira u dvadeset redova Python koda:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8verzija0x01
9algoritam0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iteracijeuint32, big-endian (600,000)
14–29sol16 bajtova
30–41nonce12 bajtova
42–krajšifratAES-256-GCM korisnog tereta, AAD = bajtovi 0–41; zadnjih 16 bajtova je GCM oznaka

Korisni teret prije šifriranja: [dužina naziva u 2 bajta, big-endian][naziv datoteke, UTF-8][bajtovi datoteke]. Izvorni naziv datoteke putuje šifriran; pri dešifriranju se vraća.

Referentni dešifrator (Python, biblioteka 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)

Ovo je demo. Sef je proizvod.

Jedna datoteka, jedna pristupna fraza, jedna stranica. To je ono što pregledač može. Sealby to radi kako treba: Argon2id kalibriran za vaš uređaj, ključevi u Secure Enclaveu i skriveni sefovi bez sačuvanog spiska ili broja.

Preuzmite u prodavnici App Store

iPhone i iPad · iOS 17+ · Besplatno