Alat privasi gratis

Enkripsi sebuah file di peramban Anda

Pilih file, pilih frasa sandi, dan unduh salinan terenkripsi. AES-256-GCM, dengan kunci yang diturunkan di peramban Anda. Tidak ada unggahan, dan ia bekerja luring setelah dimuat. Formatnya didokumentasikan byte per byte di bawah, supaya Anda tak perlu percaya begitu saja pada ucapan kami.

Berjalan sepenuhnya di tab ini. Tidak ada yang diunggah, dan ia bekerja luring setelah dimuat.

File apa pun. File besar butuh memori. Lihat batasan jujurnya di bawah.

Tidak ada pemulihan. Frasa sandi yang terlupakan berarti file yang tak seorang pun, termasuk kami, bisa membukanya, selamanya.

Setiap parameter, dinyatakan

Cipher
AES-256-GCM (WebCrypto), tag 128-bit
Derivasi kunci
PBKDF2-HMAC-SHA-256, 600.000 iterasi
Salt KDF
16 byte, CSPRNG, baru untuk tiap file
Nonce GCM
12 byte, CSPRNG, baru untuk tiap file
Data terautentikasi
seluruh header 42 byte, jadi merusak parameter mana pun yang dinyatakan akan menggagalkan dekripsi
Pengodean frasa sandi
UTF-8, dinormalkan NFC (sehingga frasa yang sama diketik di perangkat mana pun menurunkan kunci yang sama)

Batasan yang jujur

Ini bukan format brankas aplikasi Sealby. Aplikasinya menurunkan kunci dengan Argon2id yang dikalibrasi per perangkat, membungkusnya di Secure Enclave, dan menyimpan konten dalam wadah berbasis blok yang bisa disangkal. Halaman web tak bisa melakukan satu pun dari itu. Halaman ini adalah utilitas mandiri yang dibangun di atas apa yang ditawarkan peramban secara bawaan.

PBKDF2 tidak berat memori. Ia satu-satunya fungsi derivasi kunci yang dibawa peramban secara bawaan, dan 600.000 iterasi membuat tiap tebakan lambat, tetapi perangkat GPU tetap menyerangnya jauh lebih cepat daripada Argon2id. Jadi perlindungannya ada pada frasa sandi Anda: empat kata acak atau lebih, bukan sebuah kata sandi.

WebCrypto mengenkripsi sekali jalan. Tidak ada streaming, jadi seluruh file berada di memori dua sampai tiga kali lipat selama diproses. Ratusan megabyte aman di kebanyakan perangkat. Untuk arsip bergigabyte, gunakan alat desktop. Keluaran terenkripsinya juga mengungkap perkiraan ukuran file. Namanya terenkripsi di dalam, tetapi ukurannya tidak disembunyikan.

Formatnya, byte per byte

Semua yang dibutuhkan pembaca teknis untuk memverifikasi keluaran halaman ini secara mandiri, atau mendekripsinya dalam dua puluh baris Python:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8versi0x01
9algoritma0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterasiuint32, big-endian (600.000)
14–29salt16 byte
30–41nonce12 byte
42–akhircipherteksAES-256-GCM atas muatan, AAD = byte 0–41; 16 byte terakhir adalah tag GCM

Muatan sebelum enkripsi: [panjang nama 2 byte, big-endian][nama file, UTF-8][byte file]. Nama file asli ikut terenkripsi di dalamnya; saat dekripsi ia dipulihkan.

Dekriptor rujukan (Python, pustaka 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)

Ini demonya. Brankasnya adalah produknya.

Satu file, satu frasa sandi, satu halaman. Itulah yang bisa dilakukan peramban. Sealby melakukannya dengan benar: Argon2id yang dikalibrasi untuk perangkat Anda, kunci di Secure Enclave, dan brankas tersembunyi tanpa daftar atau hitungan yang tersimpan.

Unduh di App Store

iPhone & iPad · iOS 17+ · Gratis