前两天写了个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 生成种子
在这里也和某乎的开发讨论过,给我提供了一些建议和补充
也希望大家给出一些优化策略和建议
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!