Frequently asked questions

How e2ePaste.XYZ works, what it protects, and what it doesn't.

The basics

A pastebin for sharing text and files privately. Your paste is encrypted in your browser before it's uploaded, so the server only ever stores data it can't read. You get a link to share; whoever opens it can read the paste. There's no account to create.

You can add a password, an expiry time, a view limit (for example, "burn after one read"), a file attachment and syntax highlighting for code.

Anyone who has the full link, plus the password if you set one. Treat the link like the secret itself: share it only with the people you mean to, and use a view limit or a short expiry for anything sensitive.

Yes to both. The code behind this site is open source under the MIT licence, so anyone can check how the encryption works.

Security and privacy

When you create a paste, your browser:

  1. generates a random 128-bit secret,
  2. derives an AES-256 key from it (with HKDF-SHA256),
  3. compresses the text, the title and the file's name, pads each to a rounded size, and encrypts them with AES-256-GCM, using your browser's built-in Web Crypto API. An attachment is padded and encrypted in 1 MB chunks as it uploads, and
  4. uploads only the encrypted result.

The secret goes into the link after the #, like https://e2epaste.xyz/s/Ab3dE5gH#secret. Browsers never send the part after # to the server, so the server never has the key. When someone opens the link, their browser reads the secret and decrypts the paste locally.

The server stores the encrypted paste, including its title, its syntax highlighting choice and any attachment's name, none of which it can read. It also stores some information it needs to work:

  • roughly how big the paste and its attachment are. Everything is padded to a rounded size before it's encrypted: every short paste is 4 KB, and larger ones are rounded up by at most 12%, so the exact size stays private,
  • whether there's an attachment,
  • when it was created and when it expires,
  • how many times it has been viewed, and the view limit,
  • a fingerprint of a check value your browser derives from the link (and password), so the server can tell that someone has the full link before it sends them the paste. It can't be turned back into the link, the password or the key.

The server isn't told whether a paste has a password; the link says so, for the viewer's browser. Like any website, the server can also see the IP addresses that create and open pastes.

Without a password, the link alone is enough to read the paste. With one, the encryption key depends on both the link and the password, so someone who gets hold of the link still can't read it. The password is never sent to the server; it's stretched with PBKDF2-SHA256 (600,000 rounds) in the browser, which makes guessing it slow.

The server only hands out the encrypted paste to a browser that proves it has both the link and the password, so nobody can download it to try passwords at their own pace. A wrong password doesn't use up a view, and after repeated wrong attempts the server makes you wait.

For the best protection, send the password through a different channel from the link, for example the link by email and the password by text message. Need a strong one? Use the password generator.

The encryption itself, AES-256-GCM with a key derived from a 128-bit random secret, is the same class of cryptography used to protect banking and messaging. Guessing a link's secret by brute force isn't feasible. In practice, the weak points are elsewhere:

  • The link. Anyone who sees it can read the paste, so it's only as private as the channel you send it through. A password protects against this.
  • Your devices. Malware or a malicious browser extension on your device, or the recipient's, can read the paste after it's decrypted.
  • Trusting the website. As with every browser-based encrypted service, the encryption code is delivered by the site itself. A compromised server could send altered code. Because the code is open source, it can be checked.

No. Only the link holds the key, and the password is never sent to the server, so there's nothing to recover it from. This is what keeps the server from reading your pastes.

Using e2ePaste.XYZ

Text can be up to 1 MB, and you can attach files of up to 25 MB in all. Several files are zipped in your browser and sent as one .zip; the files inside keep their names but not their dates.

Every paste expires, after anywhere from 10 minutes to 1 year (3 days by default). Expired pastes can't be opened and are deleted from the server.

A view limit caps how many times a paste can be opened; set it to 1 for "burn after reading". The server counts a view each time it sends the paste to someone with the full link (and the password, if there is one); a broken link or a wrong password doesn't use one. After the last allowed view, the paste is deleted from the server straight away. If it has an attachment, only the file is kept, for up to an hour (and never past its expiry), so the last viewer can download it. Leave the limit empty for no limit.

You can also have a paste deleted a set time after it's first opened: 10 minutes, an hour or a day. The timer starts on the first view, which gives the reader time to read it or download its attachment, and then it's gone, however many views are left.

Opening your own link to check it would use up a view, or start the timer. So in the browser you created a paste in, its page asks first, and offers to delete it instead.

Yes. In the browser you created it in, the paste's page has a Delete button. Confirm to delete the paste and any attachment for good.

That browser keeps the paste's delete token in its local storage until the paste expires. The token can delete the paste but not read it; the key in the link is never stored. Anyone using the same browser could see which pastes were made in it and delete them, so on a shared computer turn off "Remember on this device" when you create the paste. Clearing the site's data, or using a private window, also removes the tokens.

From anywhere else, use the delete link from the link dialog. Keep it to yourself, since anyone who has it can delete the paste. It's only shown once, so if you lose it and the browser doesn't have the token, the paste stays until it expires or reaches its view limit.

On purpose. Chat apps and social networks only ever see a generic "Encrypted Paste" card, because the server has nothing else to show them. Paste pages are also hidden from search engines.

Free password, text, number and security tools, such as a password generator, Base64 and hex converters, a number base converter, a Unix timestamp converter, a JWT decoder, a hash generator and a UUID generator. Like pastes, they run entirely in your browser, so what you enter in them never leaves your device.