语言:python
原理:提前维护地址库,随机生成ETH私钥,再通过私钥生成地址,生成的地址跟地址库地址进行匹配, 每秒万次
随机生成ETH私钥:
def generate_private_key():
private_key = os.urandom(32) # 合并固定部分和随机部分
return private_key
再通过私钥生成地址:
def public_key_to_address(public_key):
"""从公钥生成 P2PKH 地址 (压缩公钥)"""
# 公钥经过 SHA-256 哈希再经过 RIPEMD-160 哈希
sha256_pubkey = hashlib.sha256(public_key).digest()
ripemd160_pubkey = hashlib.new('ripemd160', sha256_pubkey).digest()
# 1. 添加前缀 0x00 (表示比特币主网地址)
extended_key = b'\x00' + ripemd160_pubkey
# 2. 对哈希进行两次 SHA-256 哈希以生成校验和
first_sha = hashlib.sha256(extended_key).digest()
second_sha = hashlib.sha256(first_sha).digest()
checksum = second_sha[:4]
# 3. 合并 RIPEMD-160 哈希和校验和
address_bytes = extended_key + checksum
# 使用Base58编码
btc_address = base58.b58encode(address_bytes).decode('utf-8')
return btc_address
生成的地址跟地址库地址匹配,匹配成功把私钥和地址存储到result.txt文本中
if lower_address in address_library:
logging.info(f"Address {lower_address} found in library.")
with open("result.txt", "a") as result_file:
result_file.write(f"私钥:{private_key.hex()} WIF私钥: {wif_private_key} 地址: {lower_address} \n")
运行视频:
ETH离线