Skip to content
Temporarily lock yourself out of a service by encrypting e.g. your netflix password for a week
TypeScript HTML CSS JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist/public
media
src
test/integration
.editorconfig
.env.example
.gitignore
.npmrc
license
package.json
readme.md
tsconfig.json
webpack.config.js

readme.md

Lock Me Out

Temporarily lock yourself out of a service by encrypting e.g. your netflix password for a week

Github Release License MIT

Encrypt a string to make it inaccessible for a given amount of time.

For example: if you need to focus on your studies the upcoming week, you could take your netflix password out of your password manager and lock it away for one week. After that week you will be able to extract the password again.

View app

Features

  • Make strings inaccessible
  • Group items in user account
  • No login
  • Generate own encryption key
  • Secure encryption using GPG

Screenshots

new item

Create a new item


Decrypt the created item

Usage

  • new item - Create a new item
  • new user - Create a new user
  • status - Get all items of a user or decrypt an item

How it works

For every item that is created WITH a passphrase a new encryption key will be generated and the passed value (i.e. what you want to lock up, e.g. password) will be encrypted with that key. The user now has the passphrase with which their item has been encrypted, without this passphrase the item can't be decrypted. This also means that I (i.e. the admin) can't access the encrypted data, as I don't know the users passphrase.

Items WITHOUT a password are encrypted with a shared keypair (the passphrase is written down in cleartext!). This should be avoided for real use, as this means that I (i.e. the admin) am able to access whatever the user encrypted!

User accounts will also generate an encryption key, which will be shared among it's items.

Speed Notice

GPG key generation is extremely slow at the moment, as it can take up to one minute. This is due to the fact that the hosted version of this app (lmo.jneidel.com is running on my shared hosting server. GPG just does not have the processing power available to generate the key in a reasonable amount of time (on my local machine it takes less than a second).

To reduce the amount of keys that will be generated I've removed the option to encrypt items anonymously (i.e. without a user account), but accounts can still be generated.

Installation

  • Clone the repo
  • Copy .env.example to .env
  • Fill in .env
  • Run npm install
  • Run npm run build
  • Run npm run start-prod or npm run start

Dependencies

gpg - 2.x:

GnuPG is required for the encryption of items.

See my dotfiles for a gpg install script.

Once installed you can test if gpg is working as intended with: npm run test gpg

Test

$ npm run test

Related

Attribution

Fonts

Icons

Privacy Policy

Only data needed for the usage of the app is being retained:

Item data:

  • name of the item, if given
  • encrypted value, not readable (see)
  • end date
  • associated user

Items can be permanently removed on the status page.

User data:

  • username

There is no logging.

Cookies only keep a link to the user in the top right corner.

License

MIT © Jonathan Neidel

You can’t perform that action at this time.