Générateur de Hash SHA-512
Générer un hash SHA-512 à partir de n'importe quel texte
Texte d'entrée
Hash SHA-512
Le hash SHA-512 s'affichera ici…
Qu'est-ce que le hachage SHA-512 ?
SHA-512 est une fonction de hachage cryptographique définie dans NIST FIPS 180-4, en tant que membre le plus grand de la famille SHA-2. Elle accepte une entrée de longueur quelconque et produit un condensat fixe de 512 bits (64 octets), affiché sous forme d'une chaîne hexadécimale de 128 caractères. SHA-512 est utilisé dans les signatures numériques (Ed25519 repose en interne sur SHA-512), les constructions HMAC, la vérification de l'intégrité des fichiers, et les protocoles cryptographiques qui bénéficient d'une large marge de sécurité.
SHA-512 traite l'entrée par blocs de 1 024 bits (128 octets) en utilisant une arithmétique sur des mots de 64 bits et 80 tours de compression. Ses huit valeurs de hachage initiales sont dérivées des parties fractionnaires des racines carrées des huit premiers nombres premiers, et ses 80 constantes de tour proviennent des racines cubiques des 80 premiers nombres premiers. Étant donné qu'il utilise des opérations natives sur 64 bits, SHA-512 est souvent plus rapide que SHA-256 sur les processeurs 64 bits modernes, malgré un condensat plus long.
SHA-384, SHA-512/224 et SHA-512/256 sont toutes des variantes tronquées de SHA-512 qui partagent la même structure interne, mais utilisent des valeurs de hachage initiales différentes et produisent moins de bits. Lorsque vous avez besoin de la longueur de condensat maximale offerte par la famille SHA-2, ou lorsqu'un protocole impose spécifiquement SHA-512 (comme Ed25519 ou certains schémas HMAC de dérivation de clé), SHA-512 est le bon choix. Il offre 256 bits de résistance aux collisions, équivalent à SHA-3-512 et bien supérieur aux 128 bits de SHA-256.
Pourquoi utiliser un générateur SHA-512 en ligne ?
Calculer un hash SHA-512 nécessite habituellement une commande en terminal ou quelques lignes de code. Cet outil basé sur le navigateur vous permet de générer des condensats SHA-512 instantanément sans installer de logiciel, passer par un terminal, ou écrire des scripts jetables.
Cas d'utilisation du Générateur de Hash SHA-512
Comparaison des variantes de la famille SHA-2
SHA-512 appartient à la famille SHA-2 définie dans FIPS 180-4. Le tableau ci-dessous compare les variantes SHA-2 qui partagent l'architecture interne 64 bits de SHA-512, ainsi que SHA-256 à titre de référence.
| Variante | Condensat | Longueur hex | Octets | Idéal pour |
|---|---|---|---|---|
| SHA-256 | 256 bits | 64 hex chars | 32 bytes | TLS certificates, blockchain, JWTs, SRI |
| SHA-384 | 384 bits | 96 hex chars | 48 bytes | TLS 1.3 CertificateVerify, CNSA/Suite B |
| SHA-512 | 512 bits | 128 hex chars | 64 bytes | Digital signatures, HMAC, Ed25519, file integrity |
| SHA-512/224 | 224 bits | 56 hex chars | 28 bytes | SHA-512 speed on 64-bit CPUs, 224-bit output |
| SHA-512/256 | 256 bits | 64 hex chars | 32 bytes | SHA-512 speed on 64-bit CPUs, 256-bit output |
SHA-512 vs SHA-256 vs SHA-384 vs SHA-3-512
Le bon algorithme de hachage dépend de vos exigences de sécurité, des contraintes de performance et des spécifications du protocole. SHA-512 offre le condensat le plus large de la famille SHA-2 et est souvent plus rapide que SHA-256 sur le matériel 64 bits. Cette comparaison couvre les propriétés qui comptent le plus pour choisir entre eux.
| Propriété | SHA-512 | SHA-256 | SHA-384 | SHA-3-512 |
|---|---|---|---|---|
| Digest size | 512 bits (128 hex) | 256 bits (64 hex) | 384 bits (96 hex) | 512 bits (128 hex) |
| Block size | 1024 bits | 512 bits | 1024 bits | 1600 bits (sponge) |
| Word size | 64 bits | 32 bits | 64 bits | N/A (sponge) |
| Rounds | 80 | 64 | 80 | 24 |
| Collision resistance | 2^256 operations | 2^128 operations | 2^192 operations | 2^256 operations |
| Security status | Secure | Secure | Secure | Secure |
| Standard | FIPS 180-4 | FIPS 180-4 | FIPS 180-4 | FIPS 202 |
| Web Crypto API | Yes | Yes | Yes | No |
| 64-bit optimized | Yes | No (32-bit words) | Yes | Yes |
| Primary use today | Ed25519, HMAC, file checksums | TLS, blockchain, SRI | TLS 1.3, CNSA | Backup standard |
Fonctionnement interne de SHA-512
SHA-512 traite l'entrée via une construction de Merkle–Damgård utilisant des blocs de 1 024 bits. Il initialise huit mots d'état de 64 bits (H0–H7) à partir des parties fractionnaires des racines carrées des huit premiers nombres premiers. Chaque bloc passe par 80 tours de mélange utilisant des opérations bit à bit (AND, XOR, NOT, rotation droite, décalage droit) sur des mots de 64 bits, combinées à 80 constantes de tour issues des racines cubiques des 80 premiers nombres premiers.
SHA-512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
(512 bits = 64 bytes = 128 hex characters)
| Étape | Description |
|---|---|
| Padding | Append a 1-bit, then zeros until the message length is 896 mod 1024. Append the original length as a 128-bit big-endian integer. |
| Block splitting | Divide the padded message into 1024-bit (128-byte) blocks. |
| Message schedule | Expand each 16-word (64-bit) block into 80 words using sigma functions with right-rotate and right-shift operations on 64-bit values. |
| Compression | Process 80 rounds per block using Ch, Maj, and two Sigma functions with 80 round constants derived from the cube roots of the first 80 primes. |
| Output | Concatenate the eight 64-bit state words (H0–H7) into a 512-bit (64-byte) digest, rendered as 128 hexadecimal characters. |
La taille de mot de 64 bits est le différenciateur clé par rapport à SHA-256. Sur les CPU 64 bits, chaque opération traite deux fois plus de bits par cycle, ce qui explique pourquoi SHA-512 surpasse souvent SHA-256 dans les benchmarks malgré 80 tours au lieu de 64. L'effet avalanche garantit que le basculement d'un seul bit d'entrée modifie environ 50 % des 512 bits de sortie.
Exemples de code SHA-512
SHA-512 est pris en charge nativement dans tous les langages et environnements d'exécution majeurs. L'API Web Crypto le fournit dans les navigateurs sans aucune bibliothèque. Les exemples ci-dessous couvrent les cas courants, notamment la gestion d'Unicode et le hachage de fichiers.
// Works in all modern browsers and Node.js 18+
async function sha512(text) {
const data = new TextEncoder().encode(text)
const hashBuffer = await crypto.subtle.digest('SHA-512', data)
const hashArray = Array.from(new Uint8Array(hashBuffer))
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}
await sha512('hello world')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"
// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha512').update('hello world').digest('hex')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"import hashlib
# Basic SHA-512 hash
result = hashlib.sha512(b'hello world').hexdigest()
print(result)
# → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee..."
# Hash a string with Unicode (encode to bytes first)
text = 'café ☕'
hashlib.sha512(text.encode('utf-8')).hexdigest()
# → 128-character hex string
# Hash a large file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
sha = hashlib.sha512()
for chunk in iter(lambda: f.read(8192), b''):
sha.update(chunk)
print(sha.hexdigest())package main
import (
"crypto/sha512"
"fmt"
)
func main() {
data := []byte("hello world")
hash := sha512.Sum512(data)
fmt.Printf("%x\n", hash)
// → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f...
}# Using sha512sum (Linux) or shasum (macOS) echo -n "hello world" | sha512sum # → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee... - # macOS echo -n "hello world" | shasum -a 512 # → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee... - # Verify a file checksum echo "309ecc48... myfile.bin" | sha512sum -c # → myfile.bin: OK # Using openssl (cross-platform) echo -n "hello world" | openssl dgst -sha512 # → SHA2-512(stdin)= 309ecc489c12d6eb4cc40f50c902f2b4...