Skip to content

Instantly share code, notes, and snippets.

@imylomylo
Created April 14, 2020 05:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imylomylo/60e47d1902c350179a47eb3c1ffe8c5d to your computer and use it in GitHub Desktop.
Save imylomylo/60e47d1902c350179a47eb3c1ffe8c5d to your computer and use it in GitHub Desktop.
Convert Private Key To Bitcoin Private Key In Python
#!/usr/bin/env python3
import hashlib
import binascii
import base58
# from discord chat, credit to Alrightt github user
def WIFdecode(WIF):
b58decode = base58.b58decode(WIF)
full_privkey = binascii.hexlify(b58decode)
raw_privkey = full_privkey[2:-8]
return(raw_privkey.decode("utf-8"))
def WIF_uncompressed(byte, raw_privkey):
extended_key = byte+raw_privkey
first_sha256 = hashlib.sha256(binascii.unhexlify(extended_key[:66])).hexdigest()
second_sha256 = hashlib.sha256(binascii.unhexlify(first_sha256)).hexdigest()
# add checksum to end of extended key
final_key = extended_key[:66]+second_sha256[:8]
# Wallet Import Format = base 58 encoded final_key
WIF = base58.b58encode(binascii.unhexlify(final_key))
return(WIF.decode("utf-8"))
def WIF_compressed(byte, raw_privkey):
extended_key = byte+raw_privkey+'01'
first_sha256 = hashlib.sha256(binascii.unhexlify(extended_key[:68])).hexdigest()
second_sha256 = hashlib.sha256(binascii.unhexlify(first_sha256)).hexdigest()
# add checksum to end of extended key
final_key = extended_key[:68]+second_sha256[:8]
# Wallet Import Format = base 58 encoded final_key
WIF = base58.b58encode(binascii.unhexlify(final_key))
return(WIF.decode("utf-8"))
rawpriv = WIFdecode('Uuk211aKAAeuxAVbVD9yPxc65fVQK79bEeuhtmvXmjQQk4kWrcyW')
print(WIF_compressed('80', rawpriv))
print(WIF_uncompressed('80', rawpriv))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment