Address-Generation

如何使用 python、java 或 c++ 離線生成批量錢包?

  • January 25, 2021

我想生成,比如說 100000 個密鑰對(地址/私鑰)。它應該離線完成,不使用 website/javascript ,在命令行上有一個程序。當然,軟體應該使用最好的方式來產生隨機性。<https://www.bitaddress.org>上有這樣的功能,但它是javascript,命令行腳本不容易使用。你知道這樣的軟體嗎?

一個非常簡單的方法是使用Vanitygen以下命令:

vanitygen -k -o output.txt -s seeds.txt 1
  • -k找到命中後繼續執行
  • -o output.txt將密鑰對寫入文件output.txt
  • -s seeds.txt會讓你有不同的種子。事先創建這個
  • 1是 Vanitygen 將尋找的模式。因為所有地址都以 開頭1,所以每次點擊都會很好。如果您想擁有漂亮的地址,例如1Hristo或其他東西,也很好。請記住,它會大大降低速度。

Vanitygen 在我的 2010 MBP CPU 上創建大約 300 kKey/秒。oclvanitygen大約是 750 kKeys/秒。會output.txt稍微降低速度,但不會花費一生。我現在不在可以測試命令的電腦上,但它應該可以工作。

這將生成密鑰對直到無窮大。如果你真的想要正好有 1000000(或任何其他數字)對,請嘗試使用 bash for-loop 之類的東西

vanitygen 1 &gt;&gt; output.txt

再說一次,我現在無法檢查這個,所以我不知道這些對在output.txt.

您可以使用bitcoinj — 一個由Google員工編寫的經過全面測試的 Java 庫,作為 20% 的項目。它被一些錢包應用程序使用,例如武士錢包、比特幣錢包、greenbits(菌絲體計劃遷移到比特幣j)。

  1. 從https://github.com/bitcoinj/bitcoinj.git複製項目
  2. 如果缺少 maven(例如在 osx 或linux 上)安裝maven,然後同步項目以便滿足所有依賴項:(來自項目文件夾)。brew install maven``apt install maven``mvn install
  3. 使用以下程式碼生成您的私鑰/公鑰對。
import org.bitcoinj.core.Address;
import org.bitcoinj.core.DumpedPrivateKey;
import org.bitcoinj.core.ECKey;
import org.bitcoinj.core.NetworkParameters;

public class GeneratePrivateKey {

   public static void main(String[] args) {

       for (int i=0; i&lt;10000; i++) {
           ECKey key = new ECKey();
           DumpedPrivateKey privKey = key.getPrivateKeyEncoded(NetworkParameters.prodNet());
           System.out.println("private key: " + privKey.toBase58());
           Address pubAddress = new Address(NetworkParameters.prodNet(), key.getPubKeyHash());
           System.out.println("public key: " + pubAddress.toBase58());
           System.out.println("--------------------------------");
       }
   }
}

引用自:https://bitcoin.stackexchange.com/questions/29465