Git Product home page Git Product logo

seedconceal's Introduction

SeedConceal

SeedConceal is a simple set of tools to: generate a wallet seed phrase (either random or deterministic); obscure an existing seed phrase; and reveal obscured seed phrases.

Requirements

Usage

git clone https://github.com/rarioj/seedconceal.git
cd seedconceal
composer install

Disable your internet connection before generating, obscuring, or revealing seed phrases.

By creating an air-gapped system, you can guarantee that your operating system will not interact with anything on the internet. You can reenable the internet once your seed phrases are securely stored.

Web Mode

SeedConceal Web Mode

cd php/web
php -S localhost:9000

Open a web browser and then go to http://localhost:9000/.

CLI Mode

SeedConceal CLI Mode

cd php/cli
php generate.php
php obscure.php
php reveal.php

Follow the interactive prompt for each tool.

Tools

Generate

This tool generates a valid seed phrase for a wallet using a deterministic or random approach. Only use this tool if you plan to create a new wallet or divulge a deterministic wallet mnemonic by entering all the parameters.

When generating a new wallet, leaving the passphrase field blank will use PHP's secure random_bytes() function.

With a deterministic approach, please understand the risk of generating this type of wallet. See the Speed Optimizations in Bitcoin Key Recovery Attacks paper. Unlike traditional Brain wallet which hashes a passphrase to generate an entropy, SeedConceal will hash, XOR, salt, and iterate the entered passphrase. The intent is to conceal your seed phrase by not remembering the 12/24 words mnemonic, but by remembering your private passphrase, password, and salt.

Ensure the passphrase used is unique, private, and never been exposed on the internet. Using a password will reduce the attack vector by XOR-ing it with a hashed passphrase. The hash salt and the number of iterations are essential when revealing the original mnemonic.

Obscure

This tool can obscure your existing wallet mnemonic by securing it with a password, splitting it into multiple seed phrases, and translating it to other languages. Use this tool if you plan to conceal an existing seed phrase.

  • Securing with password: Using a password will add additional security measures by XOR-ing private key and the hashed password. The hash salt and the number of iterations are critical when revealing the original seed phrase.

  • Splitting seed phrase: You can split an existing mnemonic into multiple seed phrases. The order of the generated seed phrases does not matter as long as you have all the mnemonic pieces. PHP's secure random_bytes() function is used to produce the combined XOR-ed values. The same seed phrase will generate a different set of split mnemonics every time.

  • Translating seed phrases: You can translate obscured seed phrases into different languages. A standard set of alternative languages besides English is available. See BIP39 section for more information.

Reveal

This tool does the opposite of obscure. It reveals translated, split, and password-protected seed phrases. All parameters used when obscuring mnemonic are required when revealing the original seed phrase (which includes hash salt, number of iterations, and password).

Examples

Example 1: Generating a deterministic seed phrase

Parameters:

  • Passphrase: I love Bitcoin
  • Salt: satoshi nakamoto
  • Iteration: 10000
  • Password: ObscureMe!

Generated seed phrase:

garden arrest fossil illness bunker foot olive tray grunt cushion original replace general spy happy render scene easy field oven tonight poverty divide economy

Example 2: Obscuring an existing seed phrase

Parameters:

  • Seed phrase: garden arrest fossil illness bunker foot olive tray grunt cushion original replace general spy happy render scene easy field oven tonight poverty divide economy
  • Password: ObscureMe!
  • Salt: genesis block
  • Iteration: 25000
  • Split into: 4
  • Language: random

Generated seed phrases:

mueble línea huerta parar tenso picar ciprés centro uno babor casco imitar posible anemia hueso paquete brillo tijera sartén pelar farol vehículo alga funda

phone country grant cute fine once neither plunge subway envelope firm electric refuse satoshi armor virtual enable absent rookie fun practice name eyebrow between

こふん せつりつ ねんかん はんしゃ ざつおん はいけん ほこる おうべい にっき ぴったり じどう しみん はんぼうき しゃれい せんとう やめる えがく うやまう すわる ごがつ うなぎ ねむい たぶん くいず

眉 屋 仗 凱 冊 它 妹 番 闢 預 讀 針 況 泛 和 告 剝 取 三 選 障 口 趨 恢

BIP39

BIP39 describes the implementation of a mnemonic code or mnemonic sentence, a group of easy-to-remember words, for the generation of deterministic wallets.

You can add custom wordlists and then register it as a new language in the php/config.php file. Please ensure to back up your custom configuration file if you do so. Custom wordlists must follow the rules and recommendations described on this page.

Wordlists files available:

Libraries

Check out my Starname profile and buy me a ☕ or 🍺.

seedconceal's People

Contributors

rarioj avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

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.