1. 程式人生 > >如何用Python為以太坊和比特幣生成vanity虛榮地址

如何用Python為以太坊和比特幣生成vanity虛榮地址

今天,我們將編寫一個非常簡單的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()))

我希望你對這些有一些樂趣!此外,請注意目標短語中的每個附加字元都會以指數方式增加生成難度,因此請勿過長。

======================================================================

分享一些以太坊、EOS、比特幣等區塊鏈相關的互動式線上程式設計實戰教程:

python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。

  • java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
  • php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
  • 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
  • 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
  • EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
  • php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。