天天看點

關于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.使用方法

python myseed.py 你自已的短種子字元串      
user$python IOTASEED.py lllllllls

請牢記你種子的種子:
lllllllls
以下是為你生成的IOTA種子:
SRDDGSXXGPCBXHOKUOTCICHJVADGZRAATEKGYOUPRATUZKMPLKRLQIDRLBITFKQSRDTOVMDDTWLCGEGSZ