An open API service indexing awesome lists of open source software.

https://github.com/ceca69ec/encrypt38

Command line tool to encrypt and decrypt bitcoin private keys with bip-0038 standard
https://github.com/ceca69ec/encrypt38

bip-0038 bitcoin bitcoin-address command-line cryptocurrencies encryption-decryption rust

Last synced: about 2 months ago
JSON representation

Command line tool to encrypt and decrypt bitcoin private keys with bip-0038 standard

Awesome Lists containing this project

README

        

encrypt38
=========

**Command line tool to encrypt and decrypt bitcoin private keys with
[bip-0038](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) standard.**

## Basic usage

```console
$ encrypt38 -p Satoshi KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7
6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7
```

```console
$ encrypt38 -p Satoshi 6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7
09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae
KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7
```

## Disclaimer

* **Don't trust, verify**

Compare the results of this tool with others. Verify the implementation (and the tests).
Decrypt immediately after an encryption to check the passphrase you *typed* was the one you
*wanted*.
**Use at your won risk.**

* **Not recommended**

Use this tool only to decrypt keys you already have. The method of keeping private keys
encrypted with bip-0038 standard is [not recommended](https://youtu.be/MbwLVok4gWA?t=2462) anymore
(use [mnemonic](https://crates.io/crates/mnemonic39) instead).

## Features

* **Address**

This tool show the respective address of a decrypted private key in the legacy, segwit-nested
and segwit-native formats according to the version prefix of the encrypted private key.

* **Custom separator**

Customization of the default separator of information when decrypting.

* **Decryption**

Insert an encrypted private key `6P...` and passphrase do show the private key represented in
hexadecimal and the respective address, public key and wif keys.

* **Encryption**

Insert a private key in the form of hexadecimal numbers or wif key and passphrase to show the
encrypted private key.

* **Generation (elliptic curve multiplication method)**

Insert a passphrase to create an encrypted private key using pseudo-random number generation and
elliptic curve multiplication.

* **Uncompressed address**

This tool is capable of resulting in uncompressed address (mainly for decryption and retro
compatibility, *not recommended*).

## Help

```shell
Insert encrypted, hexadecimal or wif private key and passphrase to decrypt or
encrypt accordingly. Insert only passphrase to create an encrypted private key
using elliptic curve multiplication (and pseudo-random number generation).

Usage: encrypt38 [OPTIONS] -p [PRIVATE_KEY]

Arguments:
[PRIVATE_KEY] Hexadecimal, wif or encrypted private key

Options:
-s Specify character (or string) to separate verbose result
-p Used to encrypt and decrypt the private key (required)
-u, --uncompressed Encrypted private key to generate uncompressed address
-v, --verbose Show possible address and public key when decrypting
-h, --help Print help
-V, --version Print version
```

## Installation

You have to install [rust](https://www.rust-lang.org/tools/install) and a
[linker](https://gcc.gnu.org/wiki/InstallingGCC) if you don't already have them.

```shell
$ cargo install encrypt38
```