mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-02-23 15:20:55 +01:00
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# bip38
|
|
|
|
[](http://travis-ci.org/bitcoinjs/bip38)
|
|
[](https://coveralls.io/r/cryptocoinjs/bip38)
|
|
[](https://www.npmjs.org/package/bip38)
|
|
|
|
[](https://github.com/feross/standard)
|
|
|
|
A JavaScript component that adheres to the [BIP38](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) 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 imprevious to brute force attacks thus protecting the user.
|
|
|
|
|
|
## Package Info
|
|
- homepage: [http://cryptocoinjs.com/modules/currency/bip38/](http://cryptocoinjs.com/modules/currency/bip38/)
|
|
- github: [https://github.com/cryptocoinjs/bip38](https://github.com/cryptocoinjs/bip38)
|
|
- tests: [https://github.com/cryptocoinjs/bip38/tree/master/test](https://github.com/cryptocoinjs/bip38/tree/master/test)
|
|
- issues: [https://github.com/cryptocoinjs/bip38/issues](https://github.com/cryptocoinjs/bip38/issues)
|
|
- license: **MIT**
|
|
- versioning: [http://semver-ftw.org](http://semver-ftw.org)
|
|
|
|
|
|
## Usage
|
|
|
|
### Installation
|
|
|
|
npm install --save bip38
|
|
|
|
|
|
### API
|
|
### encrypt(buffer, compressed, passphrase[, progressCallback, scryptParams])
|
|
|
|
``` javascript
|
|
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, passhprase[, progressCallback, scryptParams])
|
|
|
|
``` javascript
|
|
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 precent every time current increases by 1000
|
|
})
|
|
|
|
console.log(wif.encode(0x80, decryptedKey.privateKey, decryptedKey.compressed))
|
|
// => '5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR'
|
|
```
|
|
|
|
|
|
# References
|
|
- https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki
|
|
- https://github.com/pointbiz/bitaddress.org/issues/56 (Safari 6.05 issue)
|
|
- https://github.com/casascius/Bitcoin-Address-Utility/tree/master/Model
|
|
- https://github.com/nomorecoin/python-bip38-testing/blob/master/bip38.py
|
|
- https://github.com/pointbiz/bitaddress.org/blob/master/src/ninja.key.js
|
|
|