user117: I would like to generate a large number of public Bitcoin addresses (several hundred thousand) quickly and efficiently into a simple text file. What would be the easiest way to get this done? I'm just wondering if there are any particular scripts or services that handle this already without having to roll my own.

user323: If you want to generate a lot of keys in the wallet.dat, use command line parameter:
-keypool=<n>       Set key pool size to <n> (default: 100)

Then you can extract the results with Pywallet.
If you want to make them separate, you will have to use a cryptography library that supports secp256k1 ECDSA, like the Bouncy Castle. Simply generate private keys, use the library to generate public keys from them, and then convert them to classic Bitcoin address using this algorithm (requires libraries that support SHA256 and RIPEMD-160).

user5: You can use bitaddress.org. It is a single HTML file so you can save it and generate lots of addresses offline using their Bulk Wallet tab. The biggest problem here is Javascript performance. With current hardware you can generate around 1000 addresses per minute. If you are willing to wait several hours (maybe leave the computer working overnight), this can solve your problem.

user108: Vanitygen is a command-line tool that can be used to generate random bitcoin addresses. It also has OpenCL-compatible GPU version called oclvanitygen. Both can be built from source, GitHub, and both are included in the Windows binary package. PGP signature here.

117: <p>I would like to generate a large number of <a href="https://en.bitcoin.it/wiki/Address">public Bitcoin addresses</a> (several hundred thousand) quickly and efficiently into a simple text file. What would be the easiest way to get this done? I'm just wondering if there are any particular scripts or services that handle this already without having to roll my own.</p>
 323: <p>If you want to generate a lot of keys in the wallet.dat, use <a href="https://en.bitcoin.it/wiki/Running_Bitcoin#Command-line_arguments" rel="nofollow">command line parameter</a>:</p>

<pre><code>-keypool=&lt;n&gt;       Set key pool size to &lt;n&gt; (default: 100)
</code></pre>

<p>Then you can extract the results with <a href="https://bitcointalk.org/index.php?topic=34028.0" rel="nofollow">Pywallet</a>.</p>

<p>If you want to make them separate, you will have to use a cryptography library that supports secp256k1 ECDSA, like the <a href="http://www.bouncycastle.org/" rel="nofollow">Bouncy Castle</a>. Simply generate private keys, use the library to generate public keys from them, and then convert them to classic Bitcoin address using <a href="https://en.bitcoin.it/wiki/Address" rel="nofollow">this algorithm</a> (requires libraries that support SHA256 and RIPEMD-160).</p>
 5: <p>You can use <a href="https://www.bitaddress.org">bitaddress.org</a>. It is a single HTML file so you can save it and generate lots of addresses offline using their Bulk Wallet tab. The biggest problem here is Javascript performance. With current hardware you can generate around 1000 addresses per minute. If you are willing to wait several hours (maybe leave the computer working overnight), this can solve your problem.</p>
 108: <p><a href="https://bitcointalk.org/index.php?topic=25804.0">Vanitygen</a> is a command-line tool that can be used to generate random bitcoin addresses. It also has OpenCL-compatible GPU version called oclvanitygen. Both can be built from source, <a href="https://github.com/samr7/vanitygen">GitHub</a>, and both are included in the <a href="http://www.sendspace.com/file/pjgrfj">Windows binary package</a>. PGP signature <a href="http://insight.gotdns.org/~samr7/vanitygen-0.17-win.zip.asc">here</a>.</p>
