今天,我們將編寫一個非常簡單的python指令碼來生成虛榮地址,這些地址是以某個短語或字母序列開頭的加密貨幣地址。該過程涉及生成私鑰並檢查目標短語的地址,直到找到滿意的地址。
安裝包
首先,我們需要安裝一些可以執行計算的軟體包,以便從私鑰生成有效的公共地址。要生成比特幣地址,需要轉到終端並輸入下面命令安裝比特幣:
pip install bitcoin
要生成以太坊地址,你需要透過輸入下面命令來安裝以太坊:
pip install ethereum
編寫程式碼
程式碼非常簡單,你只需要建立一個不斷生成地址的while迴圈,並根據你的目標短語進行檢查。這是比特幣地址的程式碼:
from bitcoin import *
target = input('Input Target Phrase\n>')
priv = random_key()
addr = pubtoaddr(privtopub(priv))
while not addr.lower().startswith('1{}'.format(target)):
priv = random_key()
addr = pubtoaddr(privtopub(priv))
print('Address: {}\nPrivate Key: {}'.format(addr, priv))
以太坊有點不同,因為它沒有內建的隨機金鑰生成器,所以你必須匯入os來生成隨機數並使用SHA3來雜湊它們以生成私鑰。
另外,請注意,以太坊地址是十六進位制的,只使用了字元a-f和0-9,因此你可以生成的地址型別受到限制。如果輸入的目標不是十六進位制,它將無限迴圈,因為它永遠不會生成包含非十六進位制字元的地址。
from ethereum import utils
import os
target = input('Input Target Phrase\n>')
priv = utils.sha3(os.urandom(4096))
addr = utils.checksum_encode(utils.privtoaddr(priv))
while not addr.lower().startswith('0x{}'.format(target)):
priv = utils.sha3(os.urandom(4096))
addr = utils.checksum_encode(utils.privtoaddr(priv))
print('Address: {}\nPrivate Key: {}'.format(addr, priv.hex()))
我希望你對這些有一些樂趣!此外,請注意目標短語中的每個附加字元都會以指數方式增加生成難度,因此請勿過長。
安利個相關的互動式線上程式設計實戰教程:
python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
本作品採用《CC 協議》,轉載必須註明作者和本文連結