关于IOTA钱包的种子生成方法

1.前言

看过IOTA的区块链算法介绍后,感觉这种组链方式确实比较有前途。下载了一个IOTA的钱包,发现这种币没有像比特币那样的私钥钱包,而是一个81位由大写字母和数字9组成的字符串种子。这81位的字符种子就代表了用户的帐户所有权。不知为什么种会让人有一种人心不踏实的感觉,总有种这么生成的密钥会不安全的感觉。这个以后再研究,今天咱只讲密钥种子的一种生成方法。

2.使用pyhton

为了生成很随机的密钥种子字符串,我使用了python的random模块。直接上代码:

#!/usr/bin/env python
#coding:UTF-8
import random
import sys

class IOTASEEDObj(object):
  """docstring for IOTASEEDObj"""
  def __init__(self):
    super(IOTASEEDObj, self).__init__()
    self.pyseed = None
    self.keys = ['9']
    asciiA = ord('A')
    for i in range(26):
      self.keys.append(chr(asciiA + i))

  def getIOTASEED(self,myshortkey):
    xadd = 0
    seeds = ''
    for m in myshortkey:
      xadd += (xadd*10 + ord(m))
    random.seed(xadd)
    for i in range(81):
      seeds += self.keys[random.randint(0,26)]
    return seeds

def main(myseed):
  iotatool = IOTASEEDObj()
  seeds = iotatool.getIOTASEED(myseed)
  print('以下是为你生成的IOTA种子:')
  print(seeds)

if __name__ == '__main__':
  args = sys.argv
  if len(args) == 2:
    myseedkeys = args[1]
    if len(myseedkeys) < 8:
      print('你的种子最好大于8位字符')
    else:
      print(myseedkeys,'请牢记你种子的种子')
      main(myseedkeys)
  else:
    print '请设置你自已的密码,密码最好不要太短'

我先把这个种子生成脚本命名为myseed.py

3.使用方法

打开终端,cd 到你python脚本所在目录

python myseed.py 你自已的短种子字符串

这个时候会生成一个IOTA的81位帐户种子,这里你只要牢记你的脚本使用的种子就可以得到算得你的IOTA种子。
进行后的例子:

user$python IOTASEED.py lllllllls

请牢记你种子的种子:
lllllllls
以下是为你生成的IOTA种子:
SRDDGSXXGPCBXHOKUOTCICHJVADGZRAATEKGYOUPRATUZKMPLKRLQIDRLBITFKQSRDTOVMDDTWLCGEGSZ
阅读更多

更多精彩内容