1time.io Alternative: Configurable View Limits with XChaCha20

Both encrypt in your browser. One enforces a single view. The other lets you choose.

How 1time.io works

1time.io encrypts your secret in the browser with AES-256-GCM before sending anything to the server. Keys are derived using HKDF-SHA256, and the encryption runs through the browser's native Web Crypto API rather than a bundled library. The decryption key is part of the URL fragment, so the server only stores ciphertext it can't read.

Every link works exactly once. After the recipient opens it, the encrypted data is permanently deleted. There's no option for multiple views. This is by design, not a limitation of the free tier.

What 1time.io does well

It's completely free. No paid tiers, no ads, no tracking, no cookies. The site loads no third-party scripts at all. No analytics, no CDN resources, nothing that phones home. For a privacy-focused tool, that's a strong position.

The project is open source under the MIT license with a Go backend and Redis storage. You can self-host it with Docker Compose. It includes a CLI tool for terminal and CI/CD use, built-in password and passphrase generators, and QR code sharing for cross-device transfer.

Expiry options are 1 day, 3 days, 7 days, or 30 days. File attachments up to 10 MB are encrypted the same way as text secrets.

Where the tools differ

The biggest difference is view limits. 1time.io enforces strictly one view per secret. If you're onboarding a contractor and they need to open the credentials link on their laptop and then again on their phone, the second open fails. The secret is already gone.

Secret.Broker lets you set view limits from 1 to 25. Set it to 1 for the same one-time behavior. Set it higher when the recipient might need to open the link more than once before saving the credential.

The cipher is different too. 1time.io uses AES-256-GCM. Secret.Broker uses XChaCha20-Poly1305 with a 192-bit nonce. Both are authenticated encryption. The nonce difference matters at scale: XChaCha20's larger nonce space means no practical collision risk without nonce tracking. See the protocol page for the full encryption stack.

Secret.Broker also supports expiry as short as 15 minutes, which 1time.io doesn't offer. If you're sharing a one-time code that's only valid for an hour, a 1-day minimum expiry leaves the ciphertext on the server longer than necessary.

Paranoid mode

Secret.Broker's paranoid mode splits the link and the decryption key into two separate pieces. You send the link over one channel and the key over another. Even if one channel is compromised, the attacker only has half of what they need. 1time.io has optional passphrase protection, which adds a second factor, but the passphrase has to be communicated separately by the sender. Paranoid mode handles the split automatically.

Feature comparison

  • 1time.io: client-side AES-256-GCM (Web Crypto API), open source (MIT), completely free, strictly 1 view, expiry 1-30 days, files up to 10 MB, CLI tool, QR codes, password generators, self-hostable, no tracking
  • Secret.Broker: client-side XChaCha20-Poly1305, files up to 20 MB, view limits 1-25, expiry 15 min to 30 days, paranoid mode, no account, no tracking

For a broader look at how secret-sharing tools compare, see the alternatives comparison.

Also compare: vs scrt.link and vs OneTimeSecret.

Common questions

Is 1time.io secure?

Yes. 1time.io uses client-side AES-256-GCM encryption with HKDF-SHA256 key derivation. The encryption runs in your browser using the native Web Crypto API. The server stores only ciphertext and doesn't have the decryption key. The code is open source under the MIT license.

What's the difference between 1time.io and Secret.Broker?

Both encrypt in your browser before anything reaches the server. 1time.io uses AES-256-GCM and enforces strictly one view per secret. Secret.Broker uses XChaCha20-Poly1305 and lets you set view limits from 1 to 25. Secret.Broker also supports expiry as short as 15 minutes and paranoid mode for split-key delivery.

Is 1time.io free?

Completely. No paid tiers, no ads, no tracking. There are no usage caps or premium plans. The project is maintained by an individual developer and the full source is on GitHub.

Does 1time.io support file sharing?

Yes. Encrypted file sharing up to 10 MB on the hosted instance. Files are encrypted in the browser before upload and served as one-time downloads. The limit is configurable if you self-host.