GithubHelp home page GithubHelp logo

minilock-cli's Introduction

GitHub version

miniLock-cli is a Node.js command line version of the miniLock encryption software.

You can read about miniLock here:

https://minilock.io/

The CLI version is written from scratch using the same crypto libraries as the original Google Chrome app.

Installation

Install Node.js.

Then run the following command:

$ npm install -g [email protected]
/usr/local/bin/mlck -> /usr/local/lib/node_modules/minilock-cli/mlck
[email protected] /usr/local/lib/node_modules/minilock-cli
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
$ 

Verify the installation:

$ mlck --version
miniLock-cli v0.2.13
$ 

Tutorial

Let's get started!

Generate an ID

First, you need a miniLock ID.

$ mlck id [email protected] --save
period dry million besides usually wild everybody

Passphrase (leave blank to quit): 

Enter a good passphrase, such as the one shown before the prompt. You need ~100 bits of entropy. Any 7-8 randomly selected words out of the English lexicon should be fine.

If you insist on using a simple passphrase like "hello" (not recommended at all!), you must use the --passphrase option.

$ mlck id [email protected] --save --passphrase='hello'

Your miniLock ID: LRFbCrhCeN2uVCdDXd2bagoCM1fVcGvUzwhfVdqfyVuhi.

$ 

You can look up your miniLock ID any time.

$ mlck id

Your miniLock ID: LRFbCrhCeN2uVCdDXd2bagoCM1fVcGvUzwhfVdqfyVuhi.

$ 

Once you're sure about it (i.e. you've picked a good passphrase that is also easy to remember), you can publish it on Twitter, on your website, and on various other channels. If people know your miniLock ID they can encrypt information to you even anonymously.

Encrypt a file

Let's say you have a text file called message.txt containing the following message:

The PIN code is 1337.

Withdraw 10,100 euros and meet me at Frederick Street at 5pm.

Don't forget my chocolate!

Now you can encrypt it to the miniLock ID gT1csvpmQDNRQSMkqc1Sz7ZWYzGZkmedPKEpgqjdNTy7Y using the following command:

$ mlck encrypt -f message.txt gT1csvpmQDNRQSMkqc1Sz7ZWYzGZkmedPKEpgqjdNTy7Y
Passphrase (leave blank to quit): 

Once again, it asks you for your passphrase. This time it's to identify you as the sender. If you wish to send anonymously (using a randomly generated sender ID), use the --anonymous option.

Note that you can send anonymously even if the message itself contains identifying information.

Here's the full interaction:

$ mlck encrypt -f message.txt gT1csvpmQDNRQSMkqc1Sz7ZWYzGZkmedPKEpgqjdNTy7Y
Passphrase (leave blank to quit): 

Encrypted from LRFbCrhCeN2uVCdDXd2bagoCM1fVcGvUzwhfVdqfyVuhi.

Wrote 1075 bytes to message.txt.minilock

$ 

Now you can send the file message.txt.minilock to its intended recipient.

Decrypt a file

Your friend Bob receives a file called message.txt.minilock in the mail. Luckily he has miniLock-cli installed. He proceeds to decrypt the file using his email address and his passphrase.

$ mlck decrypt -f message.txt.minilock -e [email protected] --passphrase='puff magic dragon sea frolic autumn mist lee'
--- BEGIN MESSAGE ---
The PIN code is 1337.

Withdraw 10,100 euros and meet me at Frederick Street at 5pm.

Don't forget my chocolate!
--- END MESSAGE ---

Message from LRFbCrhCeN2uVCdDXd2bagoCM1fVcGvUzwhfVdqfyVuhi.

Original filename: message.txt

$ 

Bob knows exactly what you mean by "Don't forget my chocolate!"

Links

Here are some useful links:

minilock-cli's People

Contributors

edef1c avatar mjethani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

cubedro

minilock-cli's Issues

split out cli logic from minilock implementation

hey this is super cool, but I am interested in requiring() the minilock parts. it would be really nice to have a separate JS API from the CLI API (e.g. separate files) in the future. thanks :)

Period at the end of the miniLock ID

When generating a miniLock, it shows:

Your miniLock ID: N91eQVY88MrSqWo6jbNKSzvaWhH2xYunaSxNPvka2vY3h.

But the period is not part of the miniLock. I recommend stripping out that period, to avoid confusion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.