-
-
Save miguelmota/3793b160992b4ea0b616497b8e5aee2f to your computer and use it in GitHub Desktop.
# 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 |
Hello, How to create eth private key from eth wallet address or public key?
@navdissenyo it's not possible to reconstruct a private key from the public key or address because they are generated using a one-way function.
you can replace keccak-256sum -x -l with the commonly builtin sha256sum
you can replace keccak-256sum -x -l with the commonly builtin sha256sum
@lau-bin you cannot really substitute one for another. Because of the slight differences in how each digest algorithm works, this results in a different hash.
Ubuntu:
cat pub | keccak-256sum -x -l | tr -d ' -' | tail -c 41 > address
keccak-256sum: command not found
@miguelmota Thanks for putting this together. I implemented this for people to use in 1 line if they have NixOS or the Nix package manager installed:
nix run \
github:realfolk/nix?dir=lib/packages/generate-ethereum-account \
PATH_TO_STORE_PUBLIC_KEY \
PATH_TO_STORE_PRIVATE_KEY
Create address with checksum (EIP 55): 0xcf8e7afab9576f3bd85885065aecd479d35f4d70
-> 0xCf8e7aFAB9576F3Bd85885065aeCD479D35F4d70
address=$(cat address)
hash=$(echo -n "$address" | keccak-256sum | tr -d ' -')
checksum_address=""
for i in $(seq 0 39); do
char="${address:$i:1}"
hash_char="${hash:$i:1}"
if [[ "$char" =~ [0-9] ]]; then
checksum_address+="$char"
elif (( 0x$hash_char >= 8 )); then
checksum_address+="${char^^}"
else
checksum_address+="$char"
fi
done
Lost my Trc20 private key how to recover it ??
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
Hi