Bezmaksas privātuma rīks
Šifrējiet failu savā pārlūkprogrammā
Izvēlieties failu un ieejas frāzi, pēc tam lejupielādējiet šifrētu kopiju. Tiek izmantots AES-256-GCM, un atslēga tiek atvasināta jūsu pārlūkprogrammā. Nekas netiek augšupielādēts; pēc lapas ielādes rīks darbojas arī bezsaistē. Tālāk formāts ir dokumentēts baitu pa baitam, tāpēc ikvienu apgalvojumu varat pārbaudīt patstāvīgi.
Pilnībā darbojas šajā cilnē. Nekas netiek augšupielādēts, un pēc lapas ielādes rīks darbojas arī bezsaistē.
Jebkurš fails. Lieliem failiem ir nepieciešama atmiņa. Skatiet godīgos ierobežojumus zemāk.
Atkopšana nav iespējama. Ja ieejas frāze ir aizmirsta, failu vairs nevar atvērt neviens, arī mēs.
Visi parametri ir norādīti
- Šifrs
- AES-256-GCM (WebCrypto), 128 bitu autentifikācijas birka
- Atslēgas atvasināšana
- PBKDF2-HMAC-SHA-256, 600 000 iterācijas
- KDF sāls
- 16 baiti, CSPRNG; katram failam ģenerēta no jauna
- GCM nonce
- 12 baiti, CSPRNG; katram failam ģenerēta no jauna
- Autentificēti dati
- visa 42 baitu galvene, tāpēc jebkura norādītā parametra manipulēšana pārtrauc atšifrēšanu
- Ieejas frāzes kodējums
- UTF-8, NFC normalizēts (viena un tā pati frāze jebkurā ierīcē rada vienu un to pašu atslēgu)
Godīgi ierobežojumi
Tas nav Sealby lietotnes seifu formāts. Lietotne atvasina atslēgas ar katrai ierīcei kalibrētu Argon2id, aizsargā tās ar Secure Enclave un glabā saturu noliedzamos, gabalos sadalītos konteineros. Tīmekļa lapa neko no tā nespēj. Šī lapa ir atsevišķs rīks, kas izmanto pārlūkā iebūvētās iespējas.
PBKDF2 nav funkcija ar lielu atmiņas patēriņu. Tā ir vienīgā atslēgas atvasināšanas funkcija, ko pārlūki atbalsta iebūvēti, un 600 000 iterāciju palēnina katru minējumu, tomēr GPU sistēma tai joprojām uzbrūk daudz ātrāk nekā Argon2id. Tāpēc aizsardzību nodrošina ieejas frāze: vismaz četri nejauši vārdi, nevis parole.
WebCrypto šifrē visu vienā reizē. Straumēšana nav pieejama, tāpēc apstrādes laikā viss fails atmiņā atrodas divās vai trijās kopijās. Vairums ierīču spēj apstrādāt simtiem megabaitu; vairāku gigabaitu arhīviem izmantojiet darbvirsmas rīku. Šifrētā izvade atklāj arī faila aptuveno lielumu. Faila nosaukums ir šifrēts, bet lielums netiek slēpts.
Formāts baitu pa baitam
Viss, kas tehniskajam lasītājam ir nepieciešams, lai neatkarīgi pārbaudītu šīs lapas izvadi vai atšifrētu to divdesmit Python rindās:
| bytes | field | contents |
|---|---|---|
| 0–7 | signatūra | ASCII "SBXF0001" |
| 8 | versija | 0x01 |
| 9 | algoritms | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | iterāciju skaits | uint32, big-endian (600 000) |
| 14–29 | sāls | 16 baiti |
| 30–41 | nonce | 12 baiti |
| 42–beigām | šifrteksts | Datu daļa šifrēta ar AES-256-GCM, AAD = baiti 0–41; pēdējie 16 baiti ir GCM autentifikācijas birka |
Datu daļa pirms šifrēšanas: [2 baitu nosaukuma garums, big-endian][faila nosaukums, UTF-8][faila baiti]. Sākotnējais faila nosaukums tiek šifrēts un atšifrēšanas laikā atjaunots.
Atsauces atšifrētājs (Python, kriptogrāfijas bibliotēka)
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)Šī ir demonstrācija. Seifs ir produkts.
Viens fails, viena ieejas frāze, viena lapa — to spēj pārlūks. Sealby to dara pilnvērtīgi: jūsu ierīcei kalibrēts Argon2id, atslēgas Secure Enclave un slēpti seifi, kuru saraksts un skaits nekur netiek glabāts.
iPhone un iPad · iOS 17+ · Bezmaksas