# 批量生成以太坊地址

By [wasabi](https://paragraph.com/@wasabi) · 2022-02-24

---

前言：
===

介绍的方法都是算法离线生成，可以放心使用哦~

MAC
===

### 第一步

下载node.js并安装

[https://nodejs.org/zh-cn/download/](https://nodejs.org/zh-cn/download/)

### 第二步

创建一个文本文件，输入以下代码，然后，然后将文件保存后重命名为 user.js（任意随意）

    var Wallet = require('ethereumjs-wallet')
    const fs = require('fs');
    
    // 生成  i 个钱包地址数量
    for(var i = 0; i < 3; i++){
    
        const EthWallet = Wallet.default.generate(false);
    
        const addressALL = EthWallet.getAddressString();
        const addr = addressALL + "\n";
        console.log("address: " + EthWallet.getAddressString());
    
        const privateKeyALL = EthWallet.getPrivateKeyString();
        const pKey = privateKeyALL + "\n";
        console.log("privateKey: " + EthWallet.getPrivateKeyString());
    
        //将所有地址保存到文件中
        fs.appendFile('address.txt', addr, (err) => {
    
            if (err) throw err;
            console.log('追加address');
         });
         //将所有的私钥保存到私钥文件中
         fs.appendFile('privateKeyALL.txt', pKey, (err) => {
    
            if (err) throw err;
            console.log('追加privateKey');
         });
    
    }
    

代码中的for(var i = 0; i < 3; i++) 可以修改3这个数字，修改为几，就能生成多少个钱包地址，建议每次生成100个左右。

### 第三步

打开终端，输入`npm i ethereumjs-wallet`，点击回车，下载eth的依赖库

下载完成后，在终端中输入CD 你放刚刚js文件的文件夹路径。如果不知道，可以从访达中将文件拖入终端，也可以展示路径

![](https://storage.googleapis.com/papyrus_images/31d8064b4d1aa5879a449446c3b629343c86539119dfeed9a8a914935c2549cf.png)

然后将/user.js 删掉

![](https://storage.googleapis.com/papyrus_images/4988c46d36ec393d9a30162a209b36be55670b27a71c49ca5f8b7ac1e5bbb456.png)

点击回车，现在就切到了该文件的文件夹下，此时输入 node user.js，就会生成地址了，你的地址在该文件夹下的 address.txt中，私钥在privateKeyALL.txt中。

![](https://storage.googleapis.com/papyrus_images/13f70a099c40f0b97dddf1423a301e6feb28087deb884aae02157b900cf13e00.png)

![本来这个文件里有几条测试用的，为了截图又生成了三条，心想为了展示清楚删了三条，结果和上边不一样了哈哈哈。](https://storage.googleapis.com/papyrus_images/acfcab1d8d851b2a2662242e6fd48f6ff588dea26c8a84a186c4797802cfed75.png)

本来这个文件里有几条测试用的，为了截图又生成了三条，心想为了展示清楚删了三条，结果和上边不一样了哈哈哈。

这就是刚刚生成的地址和私钥了。

WINDOWS
=======

我手边没有Windows电脑，就不截图了

### 第一步

创建一个txt文件，输入以下代码

    const secp256k1 = require("secp256k1/elliptic")
    const createKeccakHash =  require("keccak")
    const crypto = require('crypto')
    // 生成私钥
    const privateKey = crypto.randomBytes(32)
    // 生成公钥
    const publicKey = secp256k1.publicKeyCreate(privateKey, false).slice(1)
    // 生成地址
    const address = createKeccakHash("keccak256").update(publicKey).digest().slice(-20)
    
    // 查看结果
    privateKey.toString('hex')
    address.toString('hex')
    

### 第二步

保存文件，然后将文件后缀改为.bat，然后双击执行，在终端里就能看到你的私钥和地址了

privateKey对应私钥 address对应地址。

以上，老板们觉得有用可以给我打赏~ 0x2D94DD48AfbDA1aa46eA1Aa9360e911BC29F2273

---

*Originally published on [wasabi](https://paragraph.com/@wasabi/XB20unljkVaupxXZcK1e)*
