一般我们说的地址就是指的外部拥有的地址的公钥。转账是转到别人的公钥。
借助Web3的包,生成地址就很简单了。如下:
from web3 import Web3
w3 = Web3()
acct = w3.eth.account.create()
private_key = acct.privateKey.hex()
address = acct.address
print(private_key)
print(address)
得到的地址和私钥如下
private_key = 0xa62317fe5058f49f67a20b97de58051e909da40fb4fee6a58d633e1cd2dee9c5
address = 0xdF3e09bbBae78e651c52F0e0618c383fB5f93149
可以用一个循环,多次调用 w3.eth.account.create()
就可以生产多个地址了。生成的地址可以json的形式存储起来,方便未来使用。
代码:
from web3 import Web3
import json
NUM_OF_ADDRESSES = 3
w3 = Web3()
list_addresses = []
for i in range(NUM_OF_ADDRESSES):
acct = w3.eth.account.create()
list_addresses.append(
{"address": acct.address, "private_key": acct.privateKey.hex()}
)
with open("addresses.json", "w") as fp:
json.dump(list_addresses, fp)
最后的json 文件如下。
[
{
"address": "0x47F09a771ABbDB33b2Da41fA59112980c550D1Db",
"private_key": "0xb772a1a12f25a69021dcc1868e3fc27b1e84da436d002bd7d333cdc0ad682595"
},
{
"address": "0xa285352CC647fbc69c3C50733b960c6D802d853C",
"private_key": "0x022abf9151f4b3eb571f71fbe1c4dec6eee2f0c4926a5d10675d937e6cbb3544"
},
{
"address": "0xc47937F2B7bA0A7acFd9c6c54CBd96D50a9FE424",
"private_key": "0x43a2b6082abdafab2eebb77a0589abadbbf68f7e3173da1bc01eec7d6f301a9b"
}
]
完整代码:
假设我们有想要的地址格式,比如前面 六个0,我们就可以无限循环生成地址,直到最后得到符合我们要求的地址就OK了。我没试验过,不过感觉挺有意思的。
下面是一些个人链接,欢迎大家关注。