Бесплатна алатка за приватност
Шифрирајте датотека во прелистувачот
Изберете датотека и лозинска фраза, па преземете шифрирана копија. AES-256-GCM, со клуч изведен во вашиот прелистувач. Ништо не се прикачува, а по вчитувањето работи и офлајн. Форматот е документиран бајт по бајт подолу, па не мора слепо да ни верувате.
Работи целосно во ова јазиче. Ништо не се прикачува, а по вчитувањето работи и офлајн.
Која било датотека. На големите датотеки им треба меморија. Видете ги искрените ограничувања подолу.
Нема можност за враќање. Заборавена лозинска фраза значи датотека што никој, дури ни ние, никогаш не може да ја отвори.
Наведен е секој параметар
- Шифра
- AES-256-GCM (WebCrypto), 128-битна ознака
- Изведување клуч
- PBKDF2-HMAC-SHA-256, 600,000 повторувања
- Сол за KDF
- 16 бајти, CSPRNG, нова за секоја датотека
- GCM nonce
- 12 бајти, CSPRNG, нов за секоја датотека
- Автентицирани податоци
- целото заглавје од 42 бајти, па менувањето на кој било наведен параметар го оневозможува дешифрирањето
- Кодирање на тајната фраза
- UTF-8, нормализирано со NFC (за истата фраза внесена на кој било уред да го изведе истиот клуч)
Искрени ограничувања
Ова не е форматот на сефовите во апликацијата Sealby. Апликацијата изведува клучеви со Argon2id приспособен за секој уред, криптографски ги обвиткува во Secure Enclave и ја чува содржината во скриени сегментирани контејнери. Веб-страница не може да направи ништо од тоа. Оваа страница е самостојна алатка изградена врз она што прелистувачите го нудат изворно.
PBKDF2 не е мемориски интензивен. Тоа е единствената функција за изведување клуч што прелистувачите ја нудат изворно, а 600,000 повторувања го забавуваат секој обид, но систем со GPU сепак ја напаѓа многу побрзо од Argon2id. Затоа заштитата е во вашата лозинска фраза: четири или повеќе случајни зборови, а не лозинка.
WebCrypto шифрира во еден чекор. Нема поток на обработка, па целата датотека е во меморијата во два до три примероци додека се обработува. Стотици мегабајти се во ред на повеќето уреди. За архиви од повеќе гигабајти, користете десктоп-алатка. Шифрираниот резултат ја открива и приближната големина на датотеката. Името е шифрирано внатре, но големината не е скриена.
Форматот, бајт по бајт
Сè што му треба на технички читател за независно да го провери резултатот од оваа страница или да го дешифрира во дваесет реда Python:
| bytes | field | contents |
|---|---|---|
| 0–7 | магична вредност | ASCII "SBXF0001" |
| 8 | верзија | 0x01 |
| 9 | алгоритам | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | повторувања | uint32, big-endian (600,000) |
| 14–29 | сол | 16 бајти |
| 30–41 | nonce | 12 бајти |
| 42–крај | шифриран текст | AES-256-GCM на содржината, AAD = бајти 0–41; последните 16 бајти се ознаката GCM |
Содржина пред шифрирање: [должина на името од 2 бајти, big-endian][име на датотеката, UTF-8][бајти на датотеката]. Оригиналното име патува шифрирано; при дешифрирање се враќа.
Референтен дешифратор (Python, библиотека 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)Ова е демонстрацијата. Сефот е производот.
Една датотека, една лозинска фраза, една страница. Толку може да направи прелистувач. Sealby го прави тоа како што треба: Argon2id приспособен за вашиот уред, клучеви во Secure Enclave и скриени сефови без зачуван список или број.
iPhone и iPad · iOS 17+ · Бесплатно