Full Documentation
🟢 Stable v3 — .zev format · PBKDF2-SHA512 · 600k iterations · most secure version to date
📖

How To Use ZevSafe

Step-by-step guide to encrypting and decrypting your folders with military-grade AES-256-GCM — all inside your browser, all offline.

1

Open ZevSafe

Open index.html in any modern browser (Chrome, Edge, Firefox, Safari). No installation. Works fully offline after first load.

2

Select Your Folder

In the Lock a Folder panel, drag & drop your folder onto the drop zone, or click Browse Folder. All nested subfolders and files are included automatically.

3

Create a Strong Password

Type a password — watch the strength meter turn green. Aim for "Strong" or better: mix uppercase, numbers, symbols. Use the 👁 button to check what you typed. Confirm in the second field.

4

Click "Encrypt & Download"

ZevSafe compresses your folder, derives an AES-256-GCM key with PBKDF2, encrypts everything, and auto-downloads a single yourfolder.zev file. Watch the live progress log.

5

Store Your Vault Safely

Move the .zev file to your USB, SD card, or cloud storage. Never forget your password — there is no recovery mechanism. The file is completely useless without it.

1

Open ZevSafe

Open index.html on any device — Windows, Mac, Linux, Android, or iOS. No account or special software required.

2

Load Your .zev File

In the Unlock a Vault panel, drag & drop your .zev file or click Select .zev File. The file must not be modified or renamed to a different extension.

3

Enter Your Password

Type the exact password you used when encrypting. AES-GCM automatically verifies the data — a wrong password causes an immediate, safe error with no data leaked.

4

Click "Decrypt & Download"

ZevSafe verifies the GCM authentication tag, decrypts the vault, and downloads yourfolder_decrypted.zip with your complete folder structure intact.

5

Extract the ZIP

Right-click → Extract All (Windows) or double-click (macOS) to restore your original files. Every file and subfolder is preserved exactly as it was.

Parameterv2 Standard (Default)v1 Legacy (Compat)
CipherAES-256-GCM (Authenticated)AES-256-GCM (Authenticated)
Key Size256 bits256 bits
Key DerivationPBKDF2-SHA512 · 600,000 iterationsPBKDF2-SHA256 · 100,000 iterations
Salt32 bytes (256 bits) random CSPRNG16 bytes (128 bits) random CSPRNG
IV / Nonce12 bytes (96 bits) random CSPRNG12 bytes (96 bits) random CSPRNG
Second FactorOptional Keyfile (SHA-256 mixed)None
Authentication Tag128-bit GCM tag (auto-verified)128-bit GCM tag (auto-verified)
Header FormatMagic ZV2\0 + Version + FlagsSalt (16B) + IV (12B) header
Adaptive PackagingGranular per-file STORE + Fast DEFLATEGranular per-file STORE + Fast DEFLATE
File Structure[ZV2\0 (4B) | Ver(1B) | Flags(1B) | Salt(32B) | IV(12B) | Ciphertext+Tag][Salt(16B) | IV(12B) | Ciphertext+Tag]
Random Sourcewindow.crypto.getRandomValues()window.crypto.getRandomValues()
Crypto EngineNative Web Crypto API (100% Offline)Native Web Crypto API (100% Offline)

1. Key Derivation Pipeline (v2 Standard: PBKDF2-SHA512 · 600k Iterations)

Passwords are never used directly as encryption keys. To prevent GPU/ASIC brute-forcing and dictionary attacks, ZevSafe employs an ultra-strong key stretching pipeline:

  • 32-Byte Salt Generation: A unique, random 256-bit salt is generated for each operation using the browser's cryptographically secure pseudo-random number generator (CSPRNG), window.crypto.getRandomValues(). This renders rainbow tables and pre-computed attacks mathematically impossible.
  • PBKDF2-SHA512 Stretching: The password and 32-byte salt are processed through Password-Based Key Derivation Function 2 using SHA-512 as the underlying cryptographic hash function.
  • 600,000 Iterations: The key derivation executes for 600,000 iterations (exceeding OWASP 2024 recommendations), introducing an immense computational barrier for unauthorized decryption attempts.
  • Optional Keyfile Second Factor: If an optional keyfile is supplied, its SHA-256 digest is XOR-mixed directly into the derived key material before AES-GCM key import.

2. Step-by-Step Encryption Flow

When you drop a folder and click "Encrypt & Download", the browser executes the following sequence:

  • Step 2.1: Granular Adaptive Packaging: The selected folder is packaged into a binary stream using per-file adaptive packaging: pre-compressed media (photos, videos, archives, PDFs) use instantaneous STORE mode (0 CPU overhead), while compressible files (text, code, data) use fast Level 1 DEFLATE compression for up to 10x faster vault generation.
  • Step 2.2: Header Variables: The CSPRNG generates a random 32-byte Salt and a 12-byte Initialization Vector (IV/Nonce).
  • Step 2.3: Key Stretching: The browser derives a 256-bit key from the password, Salt, and optional keyfile hash using PBKDF2-SHA512 (600,000 iterations) via crypto.subtle.deriveBits().
  • Step 2.4: AES-256-GCM ciphering: The ZIP binary stream is encrypted using AES-GCM-256 with the derived key and the 12-byte IV. During this operation, a 16-byte (128-bit) GCM authentication tag is generated to ensure data integrity.
  • Step 2.5: Zero-Copy Binary Assembly: The 50-byte v2 header [ZV2\0 | Version(0x02) | Flags | Salt(32B) | IV(12B)] is combined with the ciphertext stream via zero-copy Blob-by-reference.
  • Step 2.6: Disk Write: The packed array is downloaded as a single .zev vault file directly via browser local memory.

3. Step-by-Step Decryption Flow

When you upload a .zev file and click "Decrypt & Download", the reverse sequence takes place:

  • Step 3.1: Automatic Version Detection: The browser reads the raw binary header. If the first 4 bytes match magic ZV2\0, it executes the v2 pipeline; otherwise, it seamlessly routes to the backward-compatible v1 pipeline.
  • Step 3.2: Re-deriving Key: The user-provided password, extracted Salt, and optional keyfile are processed through PBKDF2 to re-derive the exact 256-bit AES-GCM key.
  • Step 3.3: Cryptographic Decryption & Integrity Verification: The browser calls crypto.subtle.decrypt(). The Web Crypto engine automatically calculates and validates the GCM authentication tag.
    Note: If even a single bit has been modified, or if the password is incorrect, the tag verification fails. The operation throws an OperationError and immediately aborts.
  • Step 3.4: Immediate Memory Deallocation: Intermediate encrypted buffers and ciphertext arrays are immediately deallocated before unzipping, slashing peak browser RAM by ~50%.
  • Step 3.5: In-Browser Vault Explorer: The decrypted ZIP structure is loaded into the in-browser file explorer for instant playback, selective extraction, or 1-click full archive download.

✅ Use a Long Passphrase

Something like "blue-tiger-rain-42!" is far stronger than a short complex password. Aim for 16+ characters.

❌ No Password Recovery

There is no backdoor, no reset. Losing your password means permanently losing your data. Period.

⚠️ Test Before Deleting Originals

Always verify decryption works before removing the original files. Keep a backup during your first use.

🔒 Use It Fully Offline

For maximum security, disable your internet and run ZevSafe locally. Your data never leaves RAM.

✅ Perfect for SD Cards

Encrypt folders folder-by-folder onto your SD card. Each .zev file is fully portable and self-contained.

❌ Never Modify the .zev File

Even a single changed byte will cause GCM authentication to fail. The file is tamper-proof by design.

Yes. ZevSafe makes zero network requests. All encryption runs inside your browser using the native Web Crypto API. Open DevTools → Network tab while using it — you'll see no outgoing requests. For maximum trust, clone the repo and open it locally from your hard drive.
Chrome 37+, Edge 12+, Firefox 34+, Safari 11+, Opera 24+ — covering 99%+ of devices including Android and iOS. Internet Explorer is not supported.
ZevSafe executes all operations locally in your browser's sandboxed RAM with zero duplicate buffer memory optimization.

Desktop & Cloud (zevsafe.pages.dev): Folders and video files up to 5 GB+ work seamlessly inside your browser with zero-copy Blob-by-reference architecture and instant STORE packaging.
Android Mobile Limits: Folders and videos up to 2.5 GB process smoothly with hardware-accelerated in-browser video playback and new-tab streaming.

For massive datasets (25 GB to 100 GB+): Click "💻 PC Setup (25+ GB)" in the top navigation bar to download our 1-click drag-and-drop Windows desktop toolkit. It streams chunks directly from disk using only ~10 MB of RAM with zero installation required!
Yes. Open ZevSafe in Chrome (Android) or Safari (iOS) and use the Decrypt panel normally. Both fully support the Web Crypto API.
AES-GCM's authentication tag fails instantly — you'll see a clear error message. No partial or corrupted data is ever produced. This is one of GCM mode's key advantages over older modes like CBC.
ZevSafe encrypts at the folder level. Organise your SD card into logical folders and encrypt each separately. This also lets you decrypt only what you need, not the entire card at once.
Yes — all files, subfolder structure, and filenames are preserved byte-for-byte. Just extract the ZIP to fully restore your original layout.
On iOS, automated install prompts are restricted by Safari. To install ZevSafe on iPhone or iPad:

1. Open ZevSafe in Safari.
2. Tap the Share button (square with an up arrow).
3. Scroll down and select Add to Home Screen.
4. Tap Add.

ZevSafe will launch like a native iOS app and work 100% offline.
🔒

Ready to Secure Your Files?

Go back to ZevSafe and start encrypting. Your data is yours — keep it that way.

🔐 Open ZevSafe