关于python处理助记词种子数据的问题和熵范围

  • 加密社
  • 更新于 2024-09-06 09:14
  • 阅读 333

前两天写了个python脚本,用于自测玩玩因为我看市面上还是挺多那种”私钥碰撞器“的,大多数都是骗人的,而且还收费。但是我感觉这玩意挺好玩,于是自己写了一个核心的逻辑就是生成随机助记词defgenerate_mnemonic():entropy=os.urandom(1

前两天写了个python脚本,用于自测玩玩

因为我看市面上还是挺多那种”私钥碰撞器“的,大多数都是骗人的,而且还收费。

但是我感觉这玩意挺好玩,于是自己写了一个

核心的逻辑就是

# 生成随机助记词 def generate_mnemonic(): entropy = os.urandom(16) # 随机生成 16 字节熵 mnemonic = [] for i in range(12): # 生成 12 个助记词 word_index = int.from_bytes(entropy[i:i+1], 'big') % len(WORDLIST) mnemonic.append(WORDLIST[word_index]) return ' '.join(mnemonic)

# 根据助记词生成以太坊地址 def generate_eth_address_from_mnemonic(mnemonic): seed = mnemonic_to_seed(mnemonic) # 将助记词转换为种子 private_key = keys.PrivateKey(keccak(seed)) # 生成私钥 public_key = private_key.public_key # 生成公钥 address = public_key.to_checksum_address() # 生成以太坊地址 return address, private_key.to_hex()

# 将助记词转换为种子 def mnemonic_to_seed(mnemonic, passphrase=''): mnemonic_bytes = mnemonic.encode('utf-8') # 助记词转字节 salt = ('mnemonic' + passphrase).encode('utf-8') # 加盐 return hashlib.pbkdf2_hmac('sha512', mnemonic_bytes, salt, 2048) # 使用 PBKDF2 生成种子

image.png

在这里也和某乎的开发讨论过,给我提供了一些建议和补充

3e2a85c13f93d8ae969203f00fc2390.png

也希望大家给出一些优化策略和建议

  • 原创
  • 学分: 0
  • 分类: 钱包
  • 标签:
点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论
加密社
加密社
公众号:加密社