在丢失的比特币私钥上计算校验和比特币
Calculate checksum bitcoin on lost bitcoin private key
这是我的故事:
几年前,我将我的比特币私钥分开,以将其安全地保存在不同的地方。我丢失了一部分,并认为我永远丢失了我开采的比特币。
突然(我想你明白为什么)我决定开始搜索任何零件,我找到了 6 个零件中的 3 个!!!!
所以现在我有开始(让我们说“5Lagt”)和结束("Bh3u2YHU2ntQAFTruAYGhJ1xacPJXr3l6k"),所以我需要在两者之间找到 10 个字母数字字符。
我对编程还很陌生,但有一些 Python 和大学 C 语言的基础知识。
我读到 WIF 压缩私钥的最后一个符号是校验和。
所以我在伪代码中理解我需要做以下事情
- 将私钥解码为十六进制格式(this 08+.......+checksum)
- 排除 08 和校验和
- 生成丢失的部分(以某种方式编码或解码??)
- 将第一个字节(什么字节?)与校验和进行比较
我在理论上理解了一部分,但在实践中并不了解。
如果我能拿回它,我愿意捐出钱包里 10% 的比特币!
快速检查校验和,希望它能指导您正确的方向:
import base58
import hashlib
def check_wif(wif):
"""WIF checksum checking.
Install base58 before use: `pip install base58`
>>> check_wif('5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ')
True
"""
try:
wif_bytes = base58.b58decode(wif)
if wif_bytes[0] != 128:
return False
wif_bytes_no_chksum, chksum = wif_bytes[:-4], wif_bytes[-4:]
wif_bytes_sha256_1 = hashlib.sha256(wif_bytes_no_chksum)
wif_bytes_sha256_2 = hashlib.sha256(wif_bytes_sha256_1.digest())
if wif_bytes_sha256_2.digest()[:4] == chksum:
return True
else:
return False
except ValueError:
return False
总的来说,python 对那种任务来说太慢了。
这是我的故事: 几年前,我将我的比特币私钥分开,以将其安全地保存在不同的地方。我丢失了一部分,并认为我永远丢失了我开采的比特币。
突然(我想你明白为什么)我决定开始搜索任何零件,我找到了 6 个零件中的 3 个!!!!
所以现在我有开始(让我们说“5Lagt”)和结束("Bh3u2YHU2ntQAFTruAYGhJ1xacPJXr3l6k"),所以我需要在两者之间找到 10 个字母数字字符。
我对编程还很陌生,但有一些 Python 和大学 C 语言的基础知识。
我读到 WIF 压缩私钥的最后一个符号是校验和。
所以我在伪代码中理解我需要做以下事情
- 将私钥解码为十六进制格式(this 08+.......+checksum)
- 排除 08 和校验和
- 生成丢失的部分(以某种方式编码或解码??)
- 将第一个字节(什么字节?)与校验和进行比较
我在理论上理解了一部分,但在实践中并不了解。 如果我能拿回它,我愿意捐出钱包里 10% 的比特币!
快速检查校验和,希望它能指导您正确的方向:
import base58
import hashlib
def check_wif(wif):
"""WIF checksum checking.
Install base58 before use: `pip install base58`
>>> check_wif('5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ')
True
"""
try:
wif_bytes = base58.b58decode(wif)
if wif_bytes[0] != 128:
return False
wif_bytes_no_chksum, chksum = wif_bytes[:-4], wif_bytes[-4:]
wif_bytes_sha256_1 = hashlib.sha256(wif_bytes_no_chksum)
wif_bytes_sha256_2 = hashlib.sha256(wif_bytes_sha256_1.digest())
if wif_bytes_sha256_2.digest()[:4] == chksum:
return True
else:
return False
except ValueError:
return False
总的来说,python 对那种任务来说太慢了。