如何生成高位有效、右侧补零格式的以太坊私钥
以太坊私钥生成格式修改方案
当前代码生成的以太坊私钥为低位有效、左侧补零格式,需修改为高位有效、右侧补零格式(示例:0x7af2cd5900000000000000000000000000000000000000000000000000000000)。
修改步骤
- 定位代码中生成私钥的核心行:
private_key ="{:064x}".format(h) - 将其替换为:
说明:private_key = "{:x}".format(h).ljust(64, '0')"{:x}".format(h):将整数h转换为无前导零的十六进制字符串,保留高位有效数字.ljust(64, '0'):将字符串左对齐,右侧补零至64位长度,实现右侧补零的要求
如果需要让私钥带上0x前缀(与示例格式完全匹配),可修改为:
private_key = "0x" + "{:x}".format(h).ljust(64, '0')
注意:需确认后续utils.privtoaddr函数是否接受带0x前缀的私钥,若原函数要求无前缀则保留不带0x的版本。
修改后的完整代码
import pyetherbalance #from etherscan.accounts import Account from ethereum import utils #import os import time import secrets import random #import sys dosya4 = open("hacker_address.txt", "r") start= time.time() for toplam in range(1234567890): zaman = time.time() - start h=random.randint(1,10000000) h1 = h+0 while (h<=h1): # 修改私钥生成逻辑为高位有效、右侧补零 private_key = "{:x}".format(h).ljust(64, '0') # 若需要带0x前缀,使用下面这行替换上面的行 # private_key = "0x" + "{:x}".format(h).ljust(64, '0') raw_address = utils.privtoaddr(private_key) account_address= (utils.checksum_encode(raw_address)).lower() dosya4.seek(0) #account_address = "0x267F70f9B856de226FEa5FC1B0a8E319c72CEff5" aranan_varmi = dosya4.read().find(account_address) infura_url = '' balance = pyetherbalance.PyEtherBalance(infura_url) balance_eth = balance.get_eth_balance(account_address) if aranan_varmi != - 1 : print("ahaaaaa esleme varrr") dosya2 = open("eslesme.txt", "a") dosya2.write(private_key+" "+account_address+ "\n") dosya2.close() print("Private key:"+private_key) print("Address:"+account_address) time.sleep(5) else: print (private_key, account_address, balance_eth) if balance_eth['balance'] > 0: print("EUREKA...EUREKA...EUREKA...") print(private_key, account_address, balance_eth, file=open("eslesme.txt", "a")) #sys.exit() h=h+1 #print("***********************************************") dosya4.close() print ("toplam zaman %s saniye" % zaman)
内容的提问来源于stack exchange,提问作者Jessica May
相关产品推荐
相关产品推荐

