xmseed.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from monero.seed import Seed
  2. from monero import wordlists
  3. XM_XMR = u"小 明 的 钱 包 " * 5
  4. seed = Seed(XM_XMR, "Chinese (simplified)")
  5. def colorize(text, col='SkyBlue'):
  6. colors = ['SUCCESS', 'FAILURE', 'WARNING', 'NOTE', 'Green', 'Red', 'Yellow', 'SkyBlue']
  7. if col == colors[0] or col == 0 : out = '\033[42m'
  8. elif col == colors[1] or col == 1 : out = '\033[41m'
  9. elif col == colors[2] or col == 2 : out = '\033[43m'
  10. elif col == colors[3] or col == 3 : out = '\033[44m'
  11. elif col == colors[4] or col == 4 : out = '\033[32m'
  12. elif col == colors[5] or col == 5 : out = '\033[31m'
  13. elif col == colors[6] or col == 6 : out = '\033[0;33m'
  14. elif col == colors[7] or col == 7 : out = '\033[0;36m'
  15. else : out = '\033[42m' + col +'\033[0m'
  16. return out + text +'\033[0m'
  17. def display_info():
  18. s =['Seed.Hex: ', 'Seed种子: ', '钱包地址: ', 'view密钥: ', 'spend密钥:', '\n']
  19. print(colorize(s[5] + s[1], 0), colorize(seed.phrase, 'Green'))
  20. print(colorize(s[5] + s[0], 1), colorize(seed.hex, 'Yellow'))
  21. print(colorize(s[5] + s[2], 2), seed.public_address())
  22. print(colorize(s[3], 3), seed.secret_view_key())
  23. print(colorize(s[4], 1), seed.secret_spend_key())
  24. print()
  25. def fix_seed(s):
  26. s = s.replace(' ', '')
  27. if len(s) == 64 or len(s) < 1 :
  28. return s
  29. elif len(s) < 12 or len(s) > 25:
  30. print(s, colorize(error, 'FAILURE'))
  31. exit()
  32. elif 13 < len(s) < 23 :
  33. print(s, colorize(error, 'FAILURE'))
  34. exit()
  35. cn = wordlists.ChineseSimplified()
  36. lst = list(); error_flag = ''
  37. for c in s:
  38. lst.append(c)
  39. if c not in cn.word_list :
  40. print(c, colorize('Not In Seed字典!', 'FAILURE'))
  41. error_flag = 'error_flag'
  42. if error_flag == 'error_flag' :
  43. exit()
  44. s = ' '.join(lst)
  45. return s
  46. info = '本脚本用来给门罗币数字钱包 制作个性 Seed 种子汉字助记词\n'
  47. info1 = '请输入12或24个汉字, 程序帮你计算第13或25个校验汉字! 也可以输入 Seed.Hex 计算 Seed 种子助记词。\n'
  48. info2 = 'Seed 种子(汉字/Hex): '
  49. info3 = '直接输入' + colorize(' <Enter> ', 1) + '键将新建随机种子\n'
  50. error = '\t错误-检查字数!\t'
  51. print(colorize(info, 'SUCCESS'), end = '')
  52. yes = 'y' # yes = input()
  53. if yes == 'y' or yes == 'Y' :
  54. print(colorize(info1) + info3 + colorize(info2, 'Red'), end = '')
  55. XM_XMR = fix_seed(input())
  56. seed = Seed(XM_XMR, "Chinese (simplified)")
  57. seed = Seed(seed.hex, "Chinese (simplified)")
  58. display_info()
  59. # monero.seed 开源库: https://github.com/monero-ecosystem/monero-python
  60. # 测试结果是否正确, 可以使用在线轻钱包检查,注意实际密钥种子,不要随便网上测试
  61. # https://wallet.mymonero.com/