Skip to content

Instantly share code, notes, and snippets.

@miguelmota
Last active January 21, 2025 14:42
Show Gist options
  • Save miguelmota/3793b160992b4ea0b616497b8e5aee2f to your computer and use it in GitHub Desktop.
Save miguelmota/3793b160992b4ea0b616497b8e5aee2f to your computer and use it in GitHub Desktop.
Generate Ethereum Private key, Public key, and Address using Bash and OpenSSL
# Generate the private and public keys
openssl ecparam -name secp256k1 -genkey -noout | openssl ec -text -noout > key
# Extract the public key and remove the EC prefix 0x04
cat key | grep pub -A 5 | tail -n +2 | tr -d '\n[:space:]:' | sed 's/^04//' > pub
# Extract the private key and remove the leading zero byte
cat key | grep priv -A 3 | tail -n +2 | tr -d '\n[:space:]:' | sed 's/^00//' > priv
# Generate the hash and take the address part
cat pub | keccak-256sum -x -l | tr -d ' -' | tail -c 41 > address
# (Optional) import the private key to geth
geth account import priv
@bertho-zero
Copy link

To install keccak-256sum:

wget -qO- https://codeberg.org/maandree/libkeccak/archive/1.3.1.2.tar.gz | tar xz
cd libkeccak
make
sudo make install

cd ..
wget -qO- wget https://codeberg.org/maandree/sha3sum/archive/1.2.2.tar.gz | tar xz
cd sha3sum
make
sudo make install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment