Created
April 14, 2020 05:37
-
-
Save imylomylo/60e47d1902c350179a47eb3c1ffe8c5d to your computer and use it in GitHub Desktop.
Convert Private Key To Bitcoin Private Key In Python
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
#!/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