Бесплатна алатка за приватност

Шифрирајте датотека во прелистувачот

Изберете датотека и лозинска фраза, па преземете шифрирана копија. 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:

bytesfieldcontents
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–41nonce12 бајти
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 и скриени сефови без зачуван список или број.

Преземете од App Store

iPhone и iPad · iOS 17+ · Бесплатно