All Projects → bitcoinjs → bip38

bitcoinjs / bip38

Licence: MIT license
BIP38 is a standard process to encrypt Bitcoin and crypto currency private keys that is less susceptible to brute force attacks thus protecting the user.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to bip38

Scrypt Async Js
Fast "async" scrypt implementation in JavaScript
Stars: ✭ 134 (-17.79%)
Mutual labels:  scrypt
arcbit-web
arcbit - web wallet http://arcbit.io
Stars: ✭ 31 (-80.98%)
Mutual labels:  bitcoinjs
phc-crypto
Hashing algorithms simplified (supports Argon2, Bcrypt, Scrypt, and PBKDF2)
Stars: ✭ 22 (-86.5%)
Mutual labels:  scrypt
Simple Scrypt
A convenience library for generating, comparing and inspecting password hashes using the scrypt KDF in Go 🔑
Stars: ✭ 168 (+3.07%)
Mutual labels:  scrypt
CppSecurity
C++ Security Library
Stars: ✭ 24 (-85.28%)
Mutual labels:  scrypt
rpicore
RPICoin - Proof of Stake Cryptocurrency
Stars: ✭ 16 (-90.18%)
Mutual labels:  scrypt
Php Mpos
MPOS stands for Mining Portal Open Source. Issue tracker is now closed since it's not maintained anymore.
Stars: ✭ 1,501 (+820.86%)
Mutual labels:  scrypt
cryptocoin scrypt stratum
A javascript scrypt cryptocurrency miner that uses a PHP built stratum server as a proxy.
Stars: ✭ 25 (-84.66%)
Mutual labels:  scrypt
cloak
A simple passphrase based file encryption tool.
Stars: ✭ 12 (-92.64%)
Mutual labels:  scrypt
bit2factor.org
Two-factor Bitcoin (BIP38)
Stars: ✭ 34 (-79.14%)
Mutual labels:  bip38
Crypto Password
Library for securely hashing passwords
Stars: ✭ 185 (+13.5%)
Mutual labels:  scrypt
CryptoKnight
CryptoKnight is a general purpose cryptography desktop app
Stars: ✭ 18 (-88.96%)
Mutual labels:  scrypt
mpw-rs
Master Password in Pure Rust
Stars: ✭ 34 (-79.14%)
Mutual labels:  scrypt
Webscrypt
a fast and lightweight scrypt hash algorithm for browser
Stars: ✭ 144 (-11.66%)
Mutual labels:  scrypt
dogethereum-contracts
Ethereum contracts for the Dogecoin <-> Ethereum bridge
Stars: ✭ 61 (-62.58%)
Mutual labels:  scrypt
Password4j
Password4j is a user-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various cryptographic hash functions.
Stars: ✭ 124 (-23.93%)
Mutual labels:  scrypt
btc-address-generator
Bitcoin address generator (bech32, segwit, paper wallets, BIP39 seed, etc.)
Stars: ✭ 80 (-50.92%)
Mutual labels:  bip38
ethereum-hdwallet
CLI and Node.js library for Ethereum HD Wallet derivations from mnemonic
Stars: ✭ 44 (-73.01%)
Mutual labels:  bip38
indexd
An external bitcoind index management service module
Stars: ✭ 50 (-69.33%)
Mutual labels:  bitcoinjs
noble-hashes
Audited & minimal JS implementation of SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt
Stars: ✭ 213 (+30.67%)
Mutual labels:  scrypt

bip38

build status Coverage Status Version

js-standard-style

A JavaScript component that adheres to the BIP38 standard to secure your crypto currency private keys. Fully compliant with Node.js and the browser (via Browserify).

Why?

BIP38 is a standard process to encrypt Bitcoin and crypto currency private keys that is impervious to brute force attacks thus protecting the user.

Package Info

Usage

Installation

npm install --save bip38

Async methods

Async methods are available, but using them will be slower, but free up the event loop in intervals you choose.

For benchmark results, please see the section in the README of the scryptsy library. Increasing the interval will decrease the performance hit, but increase the span between event loop free ups (UI drawing etc.) promiseInterval is the last optional parameter after scryptParams. There is no recommendation currently, as the performance trade off is app specific.

API

encrypt(buffer, compressed, passphrase[, progressCallback, scryptParams])

var bip38 = require('bip38')
var wif = require('wif')

var myWifString = '5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR'
var decoded = wif.decode(myWifString)

var encryptedKey = bip38.encrypt(decoded.privateKey, decoded.compressed, 'TestingOneTwoThree')
console.log(encryptedKey)
// => '6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg'

decrypt(encryptedKey, passphrase[, progressCallback, scryptParams])

var bip38 = require('bip38')
var wif = require('wif')

var encryptedKey = '6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg'
var decryptedKey = bip38.decrypt(encryptedKey, 'TestingOneTwoThree', function (status) {
  console.log(status.percent) // will print the percent every time current increases by 1000
})

console.log(wif.encode(0x80, decryptedKey.privateKey, decryptedKey.compressed))
// => '5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR'

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].