A lightweight, zero-dependency, single-file HTML web tool for secure offline text encryption and decryption using the native Web Crypto API.
Designed for privacy-conscious users who need a clean, transparent, and air-gapped solution to encrypt sensitive strings (such as extended public keys xpub, seed phrases, or private notes).
- Zero External Dependencies: Built entirely with pure HTML and vanilla JavaScriptโno npm packages, frameworks, or external scripts.
- Strict Content Security Policy (CSP): Includes a restrictive meta CSP tag (
connect-src 'none') that physically prevents the browser from making any network requests. - 100% Client-Side: All cryptographic operations run locally inside your browser. No data or passphrases ever leave your machine.
- Air-Gapped Ready: Works completely offline. You can download
index.htmland run it on a secure, disconnected device. - Transparent Cryptography: Encryption parameters are explicitly displayed on-screen for complete auditability.
| Parameter | Specification |
|---|---|
| Cipher | AES-256-GCM (Galois/Counter Mode) |
| Key Derivation Function | PBKDF2 |
| Hashing Function | SHA-256 |
| PBKDF2 Iterations | 100,000 |
| Key Length | 256 bits |
| Salt Size | 16 bytes (Randomly generated via crypto.getRandomValues) |
| Initialization Vector (IV) | 12 bytes (Randomly generated via crypto.getRandomValues) |
| Output Encoding | Base64 |
The resulting Base64 string encapsulates the salt, IV, and encrypted payload in a single unified format:
Base64 [ Salt (16 Bytes) + IV (12 Bytes) + Ciphertext + Auth Tag ]
Because standard parameters and native browser cryptographic primitives are used, data encrypted with EasyCryptor can be easily decrypted using standard cryptographic libraries in Python, JavaScript, or Go.
- Open your hosted GitHub Pages link:
https://coldtest-berlin.github.io/easycryptor/ - Enter your Master Passphrase.
- Input plain text to encrypt or a Base64 string to decrypt.
- Click Encrypt or Decrypt.
- Download or copy the
index.htmlfile to your computer or USB drive. - Disconnect your device from the internet (turn off Wi-Fi).
- Open
index.htmlin any web browser. - Encrypt/decrypt your text securely.
Easy Cryptor enforces a zero-network policy directly in the HTML <head>:
<meta http-equiv="Content-Security-Policy"
content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; connect-src 'none'; img-src 'none'; font-src 'none'; object-src 'none';">