J'essaie d'écrire ma propre clé privée en wifcode de format. Je crois que le codage base58 est correct, mais je ne reçois pas la même sortie. Quand je regarde plus loin dans mon code, je remarque que ma sortie de mon double hash sha256 n'est pas la même, ce qui conduit à une somme de contrôle différente et jette tout le long de la ligne.
Voici un peu de code où réside mon problème. Cette partie est réécrite uniquement pour ce poste et laisse de côté toutes mes autres étapes qui ne sont pas nécessaires pour être affichées pour ce problème.
import hashlib
a = "800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"
def double_hash(num):
first_hash = hashlib.sha256(num.encode()).hexdigest()
print(first_hash, "first hash")
second_hash = hashlib.sha256(first_hash.encode()).hexdigest()
return second_hash
def main():
print(double_hash(a))
if __name__ == "__main__":
main()
# ---- Output ----
# >>> e2e4146a36e9c455cf95a4f259f162c353cd419cc3fd0e69ae36d7d1b6cd2c09 first hash
# >>> fe32ab4c7a99d37256148b0dabc6390272ebe2572b943abc2580bfdacac98fbc
# ---- Expected output ----
# 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 first hash
# 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714
Voici ma source:
https://en.bitcoin.it/wiki/Wallet_import_format
Réponses:
0 pour la réponse № 1Je ne sais pas comment je suis arrivé à ce sujet. Je pensais que la représentation sous forme de chaîne du nombre hexadécimal doit être convertie en un autre nombre. J'ai donc essayé de le convertir en format binaire. Par essais et erreurs, je suis tombé sur une tentative d’essayer de la non-clarifier et cela a fonctionné.
import hashlib
import binascii
a = "800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"
def double_hash(num):
first_hash = hashlib.sha256(binascii.unhexlify(num)).hexdigest()
print(first_hash, "first hash")
second_hash = hashlib.sha256(binascii.unhexlify(first_hash)).hexdigest()
return second_hash
def main():
print(double_hash(a))
if __name__ == "__main__":
main()
# ---- Output ----
# 8147786c4d15106333bf278d71dadaf1079ef2d2440a4dde37d747ded5403592 first hash
# 507a5b8dfed0fc6fe8801743720cedec06aa5c6fca72b07c49964492fb98a714
# ---- Expected output ----
# 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 first hash
# 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714