How Hush Works
When you type a secret, your browser generates a random AES-256-GCM encryption key. The secret is encrypted locally on your device before it ever touches the network.
The raw encryption key is embedded directly into the URL fragment (the part after the # symbol). Browsers intentionally do not send URL fragments to servers. Therefore, we never receive the key to decrypt your data.
We store the encrypted envelope and an opaque ID. We enforce strict expiry times (10 minutes, 1 hour, or 24 hours).
Normal secrets are consumed atomically only after the recipient intentionally clicks "Reveal Secret". This triggers a database transaction where the encrypted payload is returned exactly once, and immediately permanently erased.
Note: Passphrase-protected secrets allow incorrect-password retries and use best-effort finalization after successful decryption.
The recipient's browser reads the key from the URL fragment and uses it to decrypt the retrieved envelope locally. If a passphrase was required, they must provide it to unwrap the AES key first.
Want to learn more about securely sharing data? Check out our Security Blog.