<p>Any 256-bit value can be a valid secp256k1 ECDSA private key. Strictly speaking, there's an upper limit that's slightly lower than 2^256, but you can just wrap them around.</p>

<p>So yes, you can just use SHA256(passphrase) to generate a private key.</p>

CC BY-SA 4.0
2019-02-24T04:23:31.957Z
Techies often forget to `normalize` the private seed when making brain wallets, mentioned above. This is typically not a show stopper for secp256k1, but is very big issue when ed25519 is used. Concerning secp256k1, try a using a private key greater than FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140.  Key normalization is required.
skaht
CC BY-SA 3.0
2013-09-26T23:35:53.667Z
2013-09-26T23:35:53.667Z
David Schwartz
<p>We made a much improved version of brainwallet that uses scrypt key-stretching to protect your secret key.  See it here: <a href="https://keybase.io/warp" rel="nofollow">https://keybase.io/warp</a>.  There's currently an unbroken 20BTC challenge for an 8-letter passphrase.</p>

CC BY-SA 3.0
2014-01-13T15:32:32.327Z
After losing bitcoins in bitaddress.org's brain wallet, I am glad to see someone came up with something a little more substantial. The fact that an 8 character pass still hasn't been cracked is impressive.
RobKohr
CC BY-SA 3.0
2013-12-12T13:18:29.157Z
2013-12-12T13:18:29.157Z
Max Krohn
<p>How do sites like blockchain.info and bitaddress.org generate private keys by simply hashing a string? (the passphrase?) </p>

<p>In this wiki article,
<a href="https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses" rel="nofollow">https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses</a>
Step "0" starts with an ECDSA key pair already generated.</p>

<p>Does this mean that any 256-bit value can be a valid ECDSA private key? So wherever I am in the world, I can always just SHA256(passphrase) and get my private key? </p>

<ecdsa><brain-wallet>
How are brain wallets generated?
pinhead
# How are brain wallets generated?

(Asked by: username_0 on 2013-09-26)

How do sites like blockchain.info and bitaddress.org generate private keys by simply hashing a string? (the passphrase?)

In this wiki article,
<https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses>
Step "0" starts with an ECDSA key pair already generated.

Does this mean that any 256-bit value can be a valid ECDSA private key? So wherever I am in the world, I can always just SHA256(passphrase) and get my private key?

**Tags:** ecdsa, brain-wallet


---

## 2 answers

### Answer by username_1 on 2013-09-26. Score: 3 | Accepted answer

Any 256-bit value can be a valid secp256k1 ECDSA private key. Strictly speaking, there's an upper limit that's slightly lower than 2^256, but you can just wrap them around.

So yes, you can just use SHA256(passphrase) to generate a private key.

> **Comments:**
> **username_2**: Techies often forget to `normalize` the private seed when making brain wallets, mentioned above. This is typically not a show stopper for secp256k1, but is very big issue when ed25519 is used. Concerning secp256k1, try a using a private key greater than FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140.  Key normalization is required.  

---

### Answer by username_3 on 2013-12-12. Score: 2

We made a much improved version of brainwallet that uses scrypt key-stretching to protect your secret key. See it here: <https://keybase.io/warp>. There's currently an unbroken 20BTC challenge for an 8-letter passphrase.

> **Comments:**
> **username_4**: After losing bitcoins in bitaddress.org's brain wallet, I am glad to see someone came up with something a little more substantial. The fact that an 8 character pass still hasn't been cracked is impressive.  

---

