WikiPlus

Convertir de grands nombres binaires avec BigInt

Les applications de cryptographie et de sécurité manipulent des nombres bien plus grands que ce que les calculatrices ordinaires peuvent gérer. Une clé RSA de 2048 bits, un hachage SHA-512 de 512 bits ou un UUID v4 de 128 bits sont des valeurs qui débordent les limites des types numériques standards. Le Convertisseur de Bases de WikiPlus utilise BigInt pour gérer ces valeurs avec une précision exacte, dans n'importe quelle base de 2 à 36.

Pourquoi les types numériques standards ne suffisent pas pour la cryptographie

JavaScript utilise des nombres IEEE 754 à virgule flottante 64 bits (doubles) pour tous ses calculs numériques standards. Ces nombres représentent exactement les entiers jusqu'à 2^53 - 1 = 9 007 199 254 740 991 (environ 9 quadrillions). Au-delà de cette valeur, les entiers sont arrondis au multiple de 2 le plus proche — une perte de précision catastrophique pour la cryptographie. Une clé RSA de 2048 bits est un nombre d'environ 617 chiffres décimaux — un ordre de grandeur de 10^617, soit incomparablement supérieur à 2^53. BigInt, introduit dans ECMAScript 2020 et supporté dans tous les navigateurs modernes, représente les entiers avec une précision exacte quelle que soit leur taille, limité uniquement par la mémoire disponible. Le Convertisseur de Bases utilise BigInt pour toutes ses opérations de conversion, garantissant des résultats exacts même pour des milliers de chiffres hexadécimaux.

Hachages cryptographiques : SHA-256, SHA-512, MD5

Les hachages cryptographiques sont des valeurs hexadécimales de longueur fixe représentant la signature numérique d'un message ou d'un fichier. MD5 produit 32 chiffres hexadécimaux (128 bits). SHA-1 produit 40 chiffres hexadécimaux (160 bits). SHA-256 produit 64 chiffres hexadécimaux (256 bits). SHA-512 produit 128 chiffres hexadécimaux (512 bits). Ces valeurs sont couramment utilisées dans les systèmes de contrôle d'intégrité des fichiers, les certificats numériques et les blockchains. Convertir un hachage SHA-256 de hexadécimal en décimal donne un nombre d'environ 78 chiffres décimaux. En binaire, c'est 256 bits (256 chiffres 0 ou 1). Cette représentation binaire montre littéralement les bits du hachage, ce qui est utile en éducation et dans certains protocoles de preuve cryptographique.

UUIDs et identifiants distribués

Un UUID (Universally Unique Identifier) est un identifiant de 128 bits habituellement représenté sous la forme 8-4-4-4-12 chiffres hexadécimaux séparés par des tirets, comme 550e8400-e29b-41d4-a716-446655440000. En hexadécimal compact (sans tirets), c'est 32 chiffres. En décimal, c'est un nombre d'environ 39 chiffres. En base 36, environ 25 caractères — une représentation plus compacte utilisée dans certains systèmes d'URL shortening et d'identifiants base36. Pour vérifier qu'un UUID est bien formé ou pour le convertir dans un format de stockage optimisé (BINARY(16) en MySQL vs CHAR(36)), la capacité à convertir ces 128 bits entre représentations est utile. Le Convertisseur de Bases de WikiPlus gère ces conversions exactement, sans arrondi.

Clés cryptographiques et adresses blockchain en différentes bases

Les blockchains Bitcoin et Ethereum utilisent intensément la conversion de bases. Les adresses Bitcoin sont encodées en Base58Check, un alphabet de 58 caractères (Base58 évite les caractères ambigus 0, O, I, l). Une clé privée Bitcoin est un nombre de 256 bits représenté en hexadécimal (64 chiffres) ou en WIF (Wallet Import Format, Base58). Ethereum utilise des adresses de 40 chiffres hexadécimaux (160 bits), préfixées de 0x. Une adresse Ethereum représente la partie basse de 160 bits du hachage Keccak-256 d'une clé publique. La base 58 utilisée par Bitcoin n'est pas directement supportée par le Convertisseur de Bases standard (qui va jusqu'à la base 36), mais la conversion de la clé brute hexadécimale en entier décimal ou binaire est entièrement prise en charge.

Questions fréquemment posées

Peut-on convertir un UUID entre hexadécimal et décimal exactement ?
Oui. En supprimant les tirets d'un UUID, on obtient 32 chiffres hexadécimaux représentant un entier de 128 bits. BigInt peut convertir cet entier en décimal (environ 39 chiffres) ou en binaire (128 chiffres) sans aucune perte de précision. Le Convertisseur de Bases gère cette opération directement.
Quelle est la limite de taille des nombres convertis ?
Avec BigInt, la seule limite est la mémoire disponible du navigateur. Des nombres de milliers de chiffres se convertissent en une fraction de seconde sur un matériel moderne. Pour les fractions décimales, la précision est limitée à environ 15-17 chiffres significatifs par le type float64.
Comment convertir un hachage SHA-256 de hexadécimal en binaire ?
Remplacez chaque chiffre hexadécimal par son équivalent 4 bits : 0=0000, 1=0001, ..., F=1111. Ou entrez directement la valeur hexadécimale dans le Convertisseur de Bases en sélectionnant Base 16 en entrée et Base 2 en sortie. Vous obtenez les 256 bits du hachage en représentation binaire complète.