Last active
          January 31, 2021 23:07 
        
      - 
      
- 
        Save daniel12fsp/f0758b874daa15e9fc1b7c45c57ae927 to your computer and use it in GitHub Desktop. 
    wallet_bash_generator
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | #Generate random bitcoin address | |
| ## based from https://gist.github.com/gadiener/ebec8b39b15293fbc438b2d21b211dfe | |
| ## https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by-step-9d7fcbf1ad0b | |
| PRIVATE_KEY="ECDSA" | |
| PUBLIC_KEY="ECDSA.pub" | |
| BITCOIN_PRIVATE_KEY="bitcoin" | |
| BITCOIN_PUBLIC_KEY="bitcoin.pub" | |
| # make seed from string | |
| # echo "this is a group of words that should not be considered random anymore so never use this to generate a private key" | openssl sha256 | |
| echo "Generating private key" | |
| openssl ecparam -genkey -name secp256k1 -rand /dev/random -out $PRIVATE_KEY | |
| echo "Generating public key" | |
| openssl ec -in $PRIVATE_KEY -pubout -out $PUBLIC_KEY | |
| echo "Generating Bitcoin private key" | |
| openssl ec -in $PRIVATE_KEY -outform DER|tail -c +8|head -c 32|xxd -p -c 32 > $BITCOIN_PRIVATE_KEY | |
| echo "Generating Bitcoin public key" | |
| openssl ec -in $PRIVATE_KEY -pubout -outform DER|tail -c 65|xxd -p -c 65 > $BITCOIN_PUBLIC_KEY | |
| uncompressed_public_key=`cat $BITCOIN_PUBLIC_KEY` | |
| compressed_public_key=`python -c "print(('02' if int('$uncompressed_public_key'[-1], 16)%2 ==0 else '03') + '$uncompressed_public_key='[2:65+1])"` | |
| sha256=$(echo $compressed_public_key | xxd -r -p | openssl sha256 | awk '{print $2}') | |
| ripem160=$(echo $sha256 | xxd -r -p | openssl ripemd160 | awk '{print $2}') | |
| address=`echo "00$ripem160" | xxd -p -r | base58 -c && echo` | |
| echo "bitcoin wallet: $address" | |
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment