如何用 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()))

我希望你对这些有一些乐趣!此外,请注意目标短语中的每个附加字符都会以指数方式增加生成难度,因此请勿过长。

安利个相关的交互式在线编程实战教程:

python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。

这里是原文如何用Python为以太坊和比特币生成虚拟地址

本作品采用《CC 协议》,转载必须注明作者和本文链接
geeker
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!