从比特币bip39助记符中生成、恢复iota种子

iota_mnemonic的Python项目详细描述


Iota助记符

这是一个命令行工具,帮助用户从比特币生成物联网种子 bip39助记符

安装

$pipenv安装物联网助记符

要安装iota助记符,只需在 选择的终端:

$ pipenv install iota_mnemonic

获取源代码

您可以从存储库中克隆源代码:

$ git clone https://github.com/mlouielu/iota-mnemonic

如何使用

# Generate 24 words mnemonic and IOTA seed
$ python -m iota_mnemonic
Mnemonic: come grocery cube calm void liberty increase pigeon captain appear employ among
float fancy cargo faith seek buzz argue lift agent split bachelor judge
IOTA Seed: RTWTRPAEGJQFRWAYTIJTKWZKLN9K9VRUETFSIPUAUCLKPNNSNWAKTOXBWSCPQVNNWDLTEIPMILIOVPGIX

# Generate mnemonic with passphrase
$ python -m iota_mnemonic -p TREZOR
Mnemonic: limit about defy sail base useless soul album aim border celery false asset average
romance attract lonely track hope sun afford creek dignity couple
IOTA Seed: LIPSSXDAJQRLBPTTBQTPTYBMUSTJPXWGYBKLSSBDVKPVEAXDGPZXOWPMEGRNSHTJXIUVCXYFTOXMZKIMY

# Generate 12 words mnemonic with passphrase
$ python -m iota_mnemonic -s 128 -p TREZOR
Mnemonic: broccoli merry lucky milk lizard cannon area utility jelly click bag clever
IOTA Seed: YNONELPCFBKQDDQMIBBBGJDZODCKXEBIJIMXRUGBA9AOPJEQ9SYYLGID9IXHILWVVDJ9ZEGQHCGIHQ9TB

# Genreate mnemonic with japanese
$ python -m iota_mnemonic -l japanese
Mnemonic: こいぬ ようちえん むせん いんさつ しなもの ふのう かわく ひかり はいけん
そんしつ たたかう ちいさい そうめん つうわ にんげん とおす さみだれ かまぼこ
らくだ さずかる ふとる とんかつ きびしい ひつぜん
IOTA Seed: ISBAFGB9LBGOQYGKKMMNK9APICZCGWIJHCMLOLPAQITGSSIGBJJOYQZJJ9NNGYIJLFB9ORMJGCWFFFYQZ

# Output the mnemonic to file
$ python -m iota_mnemonic -p TREZOR -o mnemonic

# Recover seed from mnemonic
$ python -m iota_menmonic -p TREZOR -f mnemonic
Mnemonic: often various act decide tongue sausage summer wall priority knock finish until
taxi robot panic toward giraffe acid avocado anchor travel kiwi actress cream
IOTA Seed: CRGFVETUFKUQYTPTEH9TP9BDKBVZLG9UZJDZBDMMFSSCUPIATPEZMKBLKXOEKCRDFHHFNCCBF9SKHNYIA

它是怎么工作的?

为了从记忆中创建iota种子,我们使用iota kerl函数和 用作密码和字符串的助记符句子(utf-8nfkd) “助记符”+密码短语(同样是utf-8nfkd)用作盐。

为了得到一个有效的tryte散列,我们浓缩了salt和助记语句,并且 通过from_string函数加载到iota.Hash中。from_string 将utf-8nfkd编码为字节,然后将字节转换为iota散列。

使用每个散列,然后使用散列trits和kerl吸收和挤压:

trits=[]sponge=iota.crypto.kerl.Kerl()forwordinmnemonic:hash=iota.Hash.from_string(f'mnemonic{passphrase}{word}')hash_trits=hash.as_trits()k=iota.crypto.kerl.Kerl()k.absorb(hash_trits)k.squeeze(hash_trits)sponge.absorb(hash_trits)sponge.squeeze(trits)returniota.Hash.from_trits(trits)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring Websocket处理程序未向所有客户端发布消息   java动态识别base64编码的文件类型   使用有界类型参数的java“两种方法具有相同的擦除”错误   Java中与互斥体相关的多线程问题   华为设备上的java文本对齐问题   java试图运行ant获取错误   java无法从此SPARQL查询中获得任何结果   java有没有人使用过GUTS(GUICE UTILITIES TOOLS SWING)?   在第三方应用程序中打开和关闭的Java程序监视器文件   java Codename One在iOS上保存照片的权限   swing Java程序,使用两个滑块生成两个数字相加   java如何在不安装插件的情况下将lombok jar添加到intellij idea中?   javascript getElementById在IE浏览器中工作,但在iFrame中不工作