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