BIP39 投资促进局
Java 脚本执行 比特币 BIP39: 用于生成决定性密钥的Mnemonic 代码
开发者的提醒
请记住允许从 mnemonic 短语中恢复有无效的校验和(或者您没有单词列表)
当校验和无效时,请提醒用户该短语不是由您的应用程序生成的东西,并询问他们是否愿意使用它. 这样,您的应用程序只需要持有您支持的语言的单词列表,但您可以回收由其它语言的应用程序制作的短语.
然而,应该进行其他检查,例如检查以确保用户输入12个字或更多字被空格分隔. 没错. phrase.trim().split(/\s+/g).length >= 12
实例
// Generate a random mnemonic (uses crypto.randomBytes under the hood), defaults to 128-bits of entropy
var mnemonic = bip39.generateMnemonic()
// => 'seed sock milk update focus rotate barely fade car face mechanic mercy'
bip39.mnemonicToSeedHex('basket actual')
// => '5cf2d4a8b0355e90295bdfc565a022a409af063d5365bb57bf74d9528f494bfa4400f53d8349b80fdae44082d7f9541e1dba2b003bcfec9d0d53781ca676651f'
bip39.mnemonicToSeed('basket actual')
// => <Buffer 5c f2 d4 a8 b0 35 5e 90 29 5b df c5 65 a0 22 a4 09 af 06 3d 53 65 bb 57 bf 74 d9 52 8f 49 4b fa 44 00 f5 3d 83 49 b8 0f da e4 40 82 d7 f9 54 1e 1d ba 2b ...>
bip39.validateMnemonic(mnemonic)
// => true
bip39.validateMnemonic('basket actual')
// => false
var bip39 = require('bip39')
// defaults to BIP39 English word list
// uses HEX strings for entropy
var mnemonic = bip39.entropyToMnemonic('00000000000000000000000000000000')
// => abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
// reversible
bip39.mnemonicToEntropy(mnemonic)
// => '00000000000000000000000000000000'
