Pass Share

Share passwords and secrets over an encrypted link. Everything is encrypted in your browser before it reaches our server - we can't read what you send.

0 / 512 (guest limit - log in for more)

Viewers must enter this in addition to opening the link.

Limit how many times it can be opened

Guests can create up to 5 secrets per minute with a maximum of 512 characters each. Logging in removes these limits.

How it works

  1. 1

    Type your secret

    It is encrypted right in your browser before anything is sent anywhere; not even I can read it.

  2. 2

    Get a link

    Every secret gets a unique URL that carries its own decryption key.

  3. 3

    Share it safely

    Anyone who opens the link sees the secret. Add a PIN, an expiry date, or a one-time limit to control access and lifetime.

Why you can trust this

  • Zero-knowledge: your secret is encrypted on your device, and our server only ever stores an unreadable blob.
  • The decryption key never touches our servers; it lives in the part of the link browsers don't send anywhere, and it is wiped from the address bar after viewing.
  • Self-destructing: optionally set an expiry date or a visit limit. When hit, the data is permanently deleted.
  • An optional PIN adds a second gate on top of the link, protected against brute-force guessing.
  • No account needed to create or view secrets.
Technical details
  • Encryption: AES-256-GCM via the Web Crypto API. A fresh 256-bit key and 96-bit IV are generated per secret in your browser.
  • Server storage: base64url(iv.ciphertext), an optional PIN hash (scrypt, N=16384 r=8 p=1 with a random 16-byte salt), and creation metadata (timestamp, creator, IP). Plaintext and the decryption key are never stored.
  • Key distribution: the key is exported as raw bytes → base64url and appended to the URL as a fragment (#…). Fragments are never sent to the server, no access logs or analytics see them, and the client removes the fragment from the address bar right after successful decryption.
  • Self-destruction: visits are counted with an atomic, guarded database update, so concurrent opens cannot exceed the limit. On the last allowed visit the row is burned. A timestamp is recorded and the ciphertext is deleted.
  • Abuse protection: guest usage is limited to 512 characters per secret and 5 secrets per minute per IP; logged-in users have no limits. PIN attempts are rate-limited to 10 per 5 minutes per secret and IP, and all failure responses are deliberately identical so secret existence cannot be probed.
  • Transport: served over HTTPS with a strict Content-Security-Policy and security headers.