🔐 Secure Notes Encoder – AES-256-GCM Browser Encryption
The Secure Notes Encoder lets you encrypt personal notes, API keys, passwords, and any sensitive text directly in your browser using AES-256-GCM — the same authenticated encryption standard trusted by TLS, Signal, and modern banking applications. All processing happens locally on your device; no data is ever transmitted to a server.
How Encryption Works
When you click Encrypt, the tool runs a four-step pipeline entirely inside your browser:
- Key derivation — Your passphrase is fed into
PBKDF2-SHA-256along with a cryptographically random 16-byte salt and your chosen iteration count. This stretches a short human-readable passphrase into a full 256-bit AES key. The salt prevents pre-computed (rainbow table) attacks. - Encryption — The plaintext is encrypted with
AES-256-GCMusing a fresh random 12-byte initialization vector (IV). GCM mode adds a 16-byte authentication tag that automatically detects any tampering with the ciphertext. - Packaging — The salt (16 bytes), IV (12 bytes), and ciphertext are concatenated into a single self-contained binary blob. No external parameters need to be stored separately.
- Encoding — The binary blob is encoded as Base64, Hex, or Base64-URL so it can safely be copy-pasted into any text field, email, or URL.
Decryption reverses the process: the encoded blob is decoded, the salt and IV are extracted from the first 28 bytes, the AES key is re-derived using your passphrase, and AES-GCM decrypt is called. If the passphrase is wrong or the ciphertext was altered, the GCM authentication tag check fails and an error is shown — no partial or garbled output is returned.
Choosing an Encoding Format
All three output formats encode exactly the same ciphertext bytes — only the text representation differs:
- Base64 — most compact (~33% larger than binary), universally supported in emails, databases, and note apps. This is the recommended default.
- Base64-URL — same as Base64 but replaces
+with-and/with_, and omits padding — safe to embed in URLs and query strings without percent-encoding. - Hex — each byte becomes two lowercase hexadecimal digits (~100% larger than binary), but it is completely ASCII-safe, human-scannable, and compatible with command-line tools like
xxdandopenssl.
PBKDF2 Iterations and Security
The iteration count controls how long it takes to derive the AES key from your passphrase. Higher iterations mean an attacker who steals your ciphertext must spend proportionally more time testing each passphrase guess:
- 100,000 (default) — NIST-recommended minimum for PBKDF2-SHA-256 as of 2023. Derives a key in under a second on modern hardware.
- 300,000–600,000 — recommended for high-security applications and long-term storage. Adds 1–3 seconds of processing time on typical devices.
- Below 10,000 — insufficient for protecting data against a determined attacker with modern GPU hardware.
Encoding-Only Mode (No Encryption)
Enable Encoding only in the options panel to convert plaintext to Base64, Hex, or Base64-URL without any AES encryption. This is useful for URL-safe encoding, storing binary data as text, or embedding data in data URIs — but it provides no confidentiality. Anyone can decode Base64 or Hex without a key in milliseconds.
Batch Mode
Enable Batch mode to encrypt or decrypt multiple notes at once — one note per line. Each line is processed independently with the same passphrase and receives a numbered prefix [1] …, [2] … in the output. This is useful for encrypting a list of credentials or API keys in a single pass.
Sharing and Portability
Use Copy Link to generate a URL with the ciphertext embedded in the ?ct= query parameter. When anyone opens that link, the tool pre-fills the ciphertext into the decrypt input automatically — they only need to know the passphrase. The passphrase is never included in the link, so sharing the URL publicly does not compromise the plaintext.
The QR code output is convenient for transferring short ciphertext blobs to a mobile device by scanning. For long ciphertexts (over ~600 characters), use the Download or Copy buttons instead as QR codes have a maximum data capacity.
Privacy and Security Notes
While AES-256-GCM is cryptographically strong, the overall security depends on passphrase quality. Use the built-in strength meter and Generate button to create a high-entropy passphrase. Store your passphrase separately from the ciphertext — for example, keep the encrypted blob in a note app and the passphrase in a password manager.