简介
Mnemonic code for generating deterministic keys(BIP39),BIP39 标准规定了用助记词生成随机数种子的方式,主要用于加密货币钱包中的密钥管理。bitcore-bip39 是一个 npm 包,用于生成随机助记词及对应的种子。
安装
npm install bitcore-bip39 --save
使用
生成随机助记词
const bip39 = require('bitcore-bip39') const entropy = bip39.generateEntropy() const mnemonic = bip39.entropyToMnemonic(entropy) console.log(`entropy: ${entropy.toString('hex')}`) console.log(`mnemonic: ${mnemonic}`)
生成助记词的种子
const bip39 = require('bitcore-bip39') const mnemonic = 'garden certain anger shaft bounce dust expect sentence elegant barrel tooth pioneer' const seed = bip39.mnemonicToSeedSync(mnemonic) console.log(`seed: ${seed.toString('hex')}`)
生成指定位数的随机助记词
const bip39 = require('bitcore-bip39') const strength = 256 // 256 / 8 = 32 bytes const mnemonic = bip39.generateMnemonic(strength) console.log(`mnemonic: ${mnemonic}`)
验证助记词
const bip39 = require('bitcore-bip39') const mnemonic = 'garden certain anger shaft bounce dust expect sentence elegant barrel tooth pioneer' const isValid = bip39.validateMnemonic(mnemonic) console.log(`isValid: ${isValid}`)
代码解析
generateEntropy
生成随机的 256 位(32 字节)二进制 entropy。
entropyToMnemonic
将二进制的 entropy 转换成人类可读的助记词,每个单词之间用空格隔开。
mnemonicToSeedSync
将助记词转成种子,种子用于生成整个加密货币钱包的密钥对,用于加密货币的签名和验证。
generateMnemonic
生成指定长度助记词,长度可以是 128、160、192、224、256,长度越长越安全,但是同时也越难记忆。
validateMnemonic
验证助记词是否合法,只要有一个单词不符合 BIP39 规范,则该助记词是不合法的。建议在使用助记词前先进行合法性验证。
示例
生成钱包
-- -------------------- ---- ------- ----- ----- - ------------------------ ----- ------------ - ----------------------------------- ----- ------- - ----------------------- ----- -------- - -------------------------------- ----- ---- - ---------------------------------- ----- ------------ - --- ------------------ ---------------------- ------------- -------------------------- ----------------- -- -- ----- -------- - --- -- --- - - - -- ----- ----- -------- - -------------------------------- ----- ---- - ---------------------------------- ----- ------------ - --- ------------------ ---------------------- ------------- -------------------------- -----------------
验证钱包
-- -------------------- ---- ------- ----- ----- - ------------------------ ----- ------------ - ----------------------------------- ----- -------- - ------- ------- ----- ----- ------ ---- ------ -------- ------- ------ ----- -------- ----- ------- - -------------------------------- --------------------- ------------ -- --------- - ----- ---- - ---------------------------------- ----- ------------ - --- ------------------ -------------------------- ----------------- - ---- - ---------------------- ---------- -
总结
bitcore-bip39 是一个非常好用的随机助记词生成工具,可以用于加密货币钱包的密钥管理,以及其他需要随机数种子的场合。在使用助记词前,一定要检验其是否符合 BIP39 规范,否则可能会导致一些安全问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005674b81e8991b448e3cbb