跳转至主要内容

如何用 Python 生成一个新的以太坊地址

更新于
2025年11月26日

阅读时间 4 分钟

概述

Python 是目前用途最广泛的编程语言之一,应用场景极为丰富;我们可以使用 Python 构建从客户端到后端的各种应用程序。在本指南中,我们将介绍如何使用Web3Py库在 Python 中创建以太坊地址。

先决条件

  • 系统中已安装 Python(3.6 及以上版本)和 Pip3。
  • 一个文本编辑器。

什么是以太坊地址?

在登录任何互联网平台时,都需要用户名和密码的组合。可以将以太坊地址视为用户名,而对应的私钥则相当于密码。通过地址和私钥的这种组合,您可以与以太坊区块链进行交互。 以太坊地址是你在区块链上的身份标识。它看起来像这样:“0xd5e099c71b797516c10ed0f0d895f429c2781142”。以太坊地址是公开的,可以分享,但私钥必须始终保密。以太坊地址是通过私钥生成的。以下是以太坊地址的生成过程:

  • 生成一个随机私钥(64个十六进制字符 / 256位 / 32字节) 
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
  •  公钥是通过椭圆曲线数字签名算法(ECDSA)从私钥(128个(十六进制)字符/512位/64字节)派生而来的。 
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
  • 然后对(128个字符/64字节)的公钥应用Keccak-256哈希函数,生成一个(64个字符/32字节)的哈希字符串,其中最后40个字符/20字节在前面加上0x后即为以太坊地址。
0xd5e099c71b797516c10ed0f0d895f429c2781142

以下是需要提供以太坊地址的几项内容:

  • 接收/发送 ETH。
  • 签署/发送交易。
  • 连接到应用程序。

什么是 Python?

Python是一种通用编程语言,应用范围广泛。它具有高级数据结构,采用动态类型系统,支持动态绑定,并具备许多其他特性,因此既可用于编写脚本或连接不同组件的“粘合代码”,也是开发复杂应用程序的得力工具。此外,它几乎可以在所有操作系统上进行系统调用。 由于能够运行在几乎所有系统架构上且无处不在,Python 是一种通用语言。Python 是一种解释型、交互式、面向对象的编程语言。

什么是 Web3Py?

Web3.py 是一个 Python 库,可帮助您与以太坊区块链进行交互;借助 Web3.py,开发者可以为去中心化应用(dApps)构建后端客户端,以处理与区块链的交互、从区块链中读取数据、写入交易或执行智能合约逻辑。其原始 API 源自 Web3.js JavaScript API,但随着时间的推移不断改进,以更好地满足 Python 开发者的需求。

既然这里我们使用的是 Python,那么我们就使用 Web3.py。

现在,让我们来看看如何用 Python 生成一个新的以太坊地址。

在 Python 中生成以太坊地址

这里的第一步是检查您的系统上是否安装了 Python 3.6 或更高版本;您可以在终端/命令提示符中输入以下内容,以检查是否安装了 Python:

$ python --version

如果尚未安装,您可以按照Python 官方网站“下载”页面上的说明进行操作

我们将使用Web3Py,这是一个用于与以太坊交互的 Python 库。我们将通过 PIP 安装 Web3Py,请在终端/命令提示符中输入以下命令:

$ pip install web3

注意:Python 及其他库的版本差异常会导致安装问题。因此,如果您遇到任何问题,请尝试创建一个虚拟环境,并排查web3.py 的安装问题。

如果一切顺利,Web3.py 就会安装到您的系统中。

现在,让我们创建一个 Python 文件,将其命名为 address.py,并将以下代码复制粘贴到该文件中:

来自 eth_account 导入 Account
import secrets
priv = secrets.token_hex(32)
private_key = "0x" + priv
print ("请保存但请勿分享此内容:", private_key)
acct = Account.from_key(私钥)
print("地址:", acct.地址)

上述代码的说明

第 1 行:从 Web3.py 的 eth_account 模块导入 Account

第 2 行:导入 Python 的 secrets 模块,它将帮助我们生成一个随机的十六进制字符串。

第 3 行:生成一个 32 字节/64 个字符的随机十六进制字符串,并将其存储在 priv 变量中

第 4 行:将前缀 0x 附加到存储在 priv 中的 64 个字符的十六进制字符串上,并将新字符串存储在变量 private_key 中。

第 5 行:打印私钥并显示警告。

第 6 行:使用 private_key 创建一个新账户,并将其存储在变量 acct 中。

第 7 行:将存储在 acct 变量中的账户地址与字符串“地址:”一起打印出来

现在,让我们运行我们的 Python 程序。

$ python address.py

如果你按照说明正确操作,输出结果应该类似于下文所示。第一行是私钥,第二行是以太坊地址。

结论

现在,有了自己的以太坊地址(及私钥),您就可以发送交易并与智能合约进行交互了。更多信息请参阅Web3.py 的官方文档

订阅我们的通讯,获取更多关于以太坊的文章和指南。如果您有任何反馈,欢迎通过Twitter 联系我们。您还可以随时在我们的Discord社区服务器上与我们交流,那里聚集了您能遇到的最酷的开发者们 :)

分享本指南