Skip to main content

A client side encrypted pastebin

Project description

0bin: a client side encrypted pastebin

0bin is a pastebin that encrypts the user content in the browsder and can run without a database.

0bin allows anybody to host a pastebin while welcoming any type of content to be pasted in it. The idea is that one can (probably…) not be legally entitled to moderate the pastebin content as they have no way to decrypt it.

It’s an Python implementation of the zerobin project, created by sebsauvage, under the WTFPL licence.

To run zerobin, download zerobin.pyz from the latest release then:

python zerobin.pyz

0bin requires Python 3.7 or higher.

You may need to type py -3.7 zerobin.pyz on Windows, or python3.7 zerobin.pyz on Mac/Linux, depending on your configuration.

If you are familiar with the Python ecosystem, you can also python -m pip install zerobin --user and run python -m zerobin for the same effect.

How it works

When creating the paste:

  • the browser generates a random key;

  • the pasted content is encrypted with this key using AES256;

  • the encrypted pasted content is sent to the server;

  • the browser receives the paste URL and adds the key in the URL hash (#).

When reading the paste:

  • the browser makes the GET request to the paste URL;

  • because the key is in the hash, the key is not part of the request;

  • browser gets the encrypted content end decrypts it using the key;

  • the pasted decrypted content is displayed and sourcecode is highlighted.

Key points:

  • because the key is in the hash, the key is never sent to the server;

  • therefore it won’t appear in the server logs;

  • all operations, including code coloration, happen on the client-side;

  • the server is no more than a fancy recipient for the encrypted data.

Other features

  • automatic code coloration (no need to specify the language);

  • pastebin expiration: 1 day, 1 month or never;

  • burn after reading: the paste is destroyed after the first reading;

  • clone paste: you can’t edit a paste, but you can duplicate any of them;

  • code upload: if a file is too big, you can upload it instead of using copy/paste;

  • copy paste to clipboard in a click;

  • own previous pastes history;

  • reader mode;

Known issues

  • 0bin uses several HTML5/CSS3 features that are not widely supported. In that case we handle the degradation as gracefully as we can.

  • The pasted content size limit check is not accurate. It’s just a safety net, so we think it’s ok.

Contributing

We cannot accept contributions for the moment, and will ignore PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

zerobin-1.0.5-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file zerobin-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: zerobin-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.9

File hashes

Hashes for zerobin-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4f29d9b64b0ac0eb3d1337fd11954a4622c9cae84a88370d38d3f17438f20931
MD5 e35060ae319f23207305be8cdf523131
BLAKE2b-256 aa23447c7135f2bd533a68d74de9db1d137197883132cd3b125dece1f7605d2d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page