DEV Community

Cover image for I Built a Pastebin Where Even I Can't Read Your Data
Ishan Naik
Ishan Naik

Posted on

I Built a Pastebin Where Even I Can't Read Your Data

Last week, a coworker Slacked me an AWS key. In plain text. In a channel with 50 people.

"Can you delete that?" I asked.

"Already did."

Cool. Except Slack stores message history. That key is sitting on Slack's servers forever. One breach, one rogue employee, one subpoena - and it's exposed.

This happens constantly. Developers share secrets via Slack, Discord, Pastebin. All plain text. All stored on servers we don't control.

So I built something different.

The Problem

Every time you share a password or API key, you're trusting:

  • The platform's servers
  • The platform's employees
  • The platform's security
  • Every future breach that hasn't happened yet

That's a lot of trust for "just a quick paste."

Regular pastebins store your data in plain text. When (not if) they get breached, everything's exposed.

The Solution: Zero-Knowledge Architecture

CloakBin encrypts everything in your browser before it ever touches our servers. We literally cannot read your pastes, even if we wanted to.

Here's how it works:

1. Client-Side Encryption

When you create a paste, JavaScript encrypts your content using AES-256 (same encryption banks use) right in your browser.

2. The Key Never Leaves Your Browser

The encryption key lives in the URL fragment the part after the #:

cloakbin.com/abc123#your-secret-key
Enter fullscreen mode Exit fullscreen mode

Here's the trick: browsers never send URL fragments to servers. It's not a feature I built - it's how HTTP works. The # and everything after it stays client-side.

ℹ️ This is a fundamental web security feature. Check your browser's network tab - you'll never see the fragment in any request.

3. What Our Server Actually Stores

Encrypted blob: U2FsdGVkX1+8K3...
Key: ¯\_(ツ)_/¯
Enter fullscreen mode Exit fullscreen mode

We store encrypted noise. Without the key (which we never receive), it's unreadable.

The Two-Factor Sharing Problem

"Cool, but if I share the URL on Discord, the key's right there in the message."

You're right. That's why we added password protection.

With a password enabled:

  • The encryption key is derived from your password (using PBKDF2)
  • No key in the URL - just a clean link like cloakbin.com/abc123
  • Only someone who knows the password can decrypt

💡 Secure sharing workflow:

  1. Create paste with password protection
  2. Share the link on Discord/Slack/email
  3. Send password via different channel (text, call)

Two channels = much harder to intercept both.

Try It Out

Ready to stop sharing secrets in plain text?

🔗 Try CloakBin - Create your first encrypted paste

📖 View the Source Code - Star the repo if you find it useful!


Got questions or feedback? Drop a comment below or open an issue on GitHub.

Top comments (0)