File Encryption
Encrypt any file with a password using AES-256-GCM, and decrypt .enc files back to the original name — all inside your browser.
Results
The .enc file format
offset size field
------ ---- ---------------------------------------------
0 6 magic "PPFENC" (ASCII)
6 1 version 0x01
7 16 salt (random, for PBKDF2-SHA-256)
23 12 iv (random, for AES-256-GCM)
35 * ciphertext + 16-byte GCM tag
key = PBKDF2-SHA-256(password, salt, 200000, 32 bytes)
plaintext = uint16LE(nameLength) | filename (UTF-8) | file bytes
Everything you need to decrypt the file elsewhere is in the header. Any language with an AES-GCM and PBKDF2 library — Python's cryptography, Node's crypto, Go, Rust — can read it in about fifteen lines.
How to encrypt a file
- Stay on the Encrypt tab and drop one or more files onto the box.
- Type a password. Use a long one — it is the only thing protecting the file.
- Press Encrypt files and download the
.encresult. To get the original back, switch to Decrypt, drop the.encfile in and enter the same password — the original filename comes back with it.
FAQ
Does the file get uploaded?
No. The file is read from your disk into memory, encrypted with the browser's Web Crypto API and handed straight back to you as a download. There is no server involved, so the tool also works offline.
How strong is the encryption?
AES-256 in GCM mode with a 256-bit key derived from your password by PBKDF2-SHA-256 with 200,000 iterations and a fresh 16-byte random salt. GCM also authenticates the data, so a corrupted or tampered file fails to decrypt instead of producing garbage.
Is there a size limit?
The whole file must fit in the browser's memory, so the tool refuses files over 500 MB and warns above 100 MB. For anything bigger, a desktop tool such as age, 7-Zip or VeraCrypt is a better fit.