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.
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:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SBXF0001" |
| 8 | verzija | 0x01 |
| 9 | algoritam | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | iteracije | uint32, big-endian (600,000) |
| 14–29 | sol | 16 bajtova |
| 30–41 | nonce | 12 bajtova |
| 42–kraj | šifrat | AES-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.
iPhone i iPad · iOS 17+ · Besplatno