關於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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章