Générateur de double SHA-256 (SHA-256d)

Calculez le double SHA-256 (SHA-256d) d’un texte ou d’octets hex dans votre navigateur, avec inversion des octets comme les explorateurs de blocs Bitcoin.

SHA-256d

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Qu'est-ce que Double SHA-256 (SHA-256d) ?

Le double SHA-256, noté aussi SHA-256d, hache l’entrée avec SHA-256 puis hache de nouveau avec SHA-256 l’empreinte binaire de 32 octets obtenue. C’est le hachage que Bitcoin utilise pour les en-têtes de bloc, les identifiants de transaction, les arbres de Merkle et les sommes de contrôle Base58Check. Cet outil peut aussi afficher le résultat avec l’ordre des octets inversé, comme les explorateurs de blocs affichent les hachages.

Comment utiliser Double SHA-256 (SHA-256d)

  1. Saisissez les données dans Texte à hacher ; pour les structures Bitcoin, choisissez Octets en hexadécimal comme encodage de l’entrée et collez l’en-tête ou la transaction sérialisés.
  2. Laissez l’encodage sur Texte (UTF-8) pour hacher plutôt une chaîne ordinaire.
  3. Cochez Inverser l’ordre des octets pour obtenir la valeur telle que l’affichent les explorateurs de blocs et Bitcoin Core (txid / hachage de bloc).
  4. Choisissez le Format de sortie, puis cliquez sur Copier.

Exemple

Entrée
Bitcoin genesis block header (Hex bytes): 0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c, Reverse byte order on
Sortie
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

C’est le célèbre hachage du bloc de genèse. Sans inversion des octets, la sortie est 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000.

Quand utiliser Double SHA-256 (SHA-256d)

Utilisez-le pour vérifier à la main un en-tête de bloc ou un identifiant de transaction Bitcoin, calculer les sommes de contrôle Base58Check (4 premiers octets du SHA-256d) ou reproduire des valeurs SHA-256d d’autres protocoles. Ne l’utilisez pas pour des mots de passe, ni si une spécification demande un SHA-256 simple : les résultats sont différents. Hacher une seconde fois le texte hexadécimal d’une empreinte n’est pas non plus du SHA-256d.

Comment fonctionne Double SHA-256 (SHA-256d)

L’outil calcule SHA-256(SHA-256(données)). Le point important est que le second SHA-256 porte sur les 32 octets bruts de la première empreinte, et non sur sa chaîne hexadécimale de 64 caractères : de nombreux outils en ligne se trompent sur ce point. Bitcoin traite le résultat de 32 octets comme un nombre little-endian ; le hachage de bloc familier avec ses zéros en tête est donc l’empreinte dont les octets sont inversés, et l’option Inverser l’ordre des octets fait exactement cela.

Cas d'utilisation courants

  • Vérifier le hachage d’un bloc Bitcoin à partir de son en-tête de 80 octets
  • Calculer l’identifiant de transaction (txid) d’une transaction brute sérialisée
  • Calculer la somme de contrôle de 4 octets d’une adresse Base58Check ou d’une clé WIF
  • Recouper une implémentation de minage ou de portefeuille pendant le développement

Note de Sécurité

SHA-256d résiste aux collisions autant que SHA-256. Ce n’est pas un hachage de mot de passe : utilisez Argon2, scrypt ou bcrypt pour les mots de passe. Tout le hachage s’effectue localement dans votre navigateur.

Questions Fréquentes

Pourquoi Bitcoin hache-t-il deux fois ?

Satoshi a utilisé SHA-256d, très probablement pour se prémunir contre les attaques par extension de longueur sur un hachage Merkle–Damgård simple. Cela ne rend pas les collisions plus difficiles à trouver que pour SHA-256 lui-même, mais c’est désormais figé dans le protocole.

Pourquoi mon résultat ne correspond-il pas à l’explorateur de blocs ?

Trois causes fréquentes : l’en-tête a été saisi comme texte au lieu de Octets en hexadécimal, le second hachage a porté sur la chaîne hexadécimale au lieu de l’empreinte brute, ou l’ordre des octets n’a pas été inversé. Cochez Inverser l’ordre des octets pour obtenir des hachages au format des explorateurs.

Quel est le double SHA-256 de « abc » ?

Avec une entrée UTF-8 et l’ordre des octets normal, c’est 4f8b42c22dd3729b519ba6f68d2da7cc5b2d606d05daed5ad5128cc03e6c6358.

Explorer d'autres catégories