SHA-512 Hash Generator
SHA-512-Hash aus beliebigem Text generieren
Eingabetext
SHA-512-Hash
SHA-512-Hash wird hier angezeigt…
Was ist SHA-512-Hashing?
SHA-512 ist eine kryptografische Hashfunktion, die in NIST FIPS 180-4 als größtes Mitglied der SHA-2-Familie definiert ist. Sie nimmt eine beliebig lange Eingabe entgegen und erzeugt einen festen 512-Bit-(64-Byte-)Nachrichtendigest, der als 128-stellige hexadezimale Zeichenkette ausgegeben wird. SHA-512 wird in digitalen Signaturen (Ed25519 verwendet intern SHA-512), HMAC-Konstruktionen, Dateiintegritätsprüfungen und kryptografischen Protokollen eingesetzt, die von einer großen Sicherheitsmarge profitieren.
SHA-512 arbeitet mit 1024-Bit-(128-Byte-)Blöcken unter Verwendung von 64-Bit-Wortarithmetik und 80 Kompressionsdurchläufen. Die acht initialen Hashwerte sind aus den Nachkommastellen der Quadratwurzeln der ersten acht Primzahlen abgeleitet, und die 80 Rundenkonstanten stammen aus den Kubikwurzeln der ersten 80 Primzahlen. Da SHA-512 native 64-Bit-Operationen verwendet, ist er auf modernen 64-Bit-Prozessoren häufig schneller als SHA-256, obwohl er einen längeren Digest produziert.
SHA-384, SHA-512/224 und SHA-512/256 sind alle gekürzten Varianten von SHA-512, die dieselbe interne Struktur teilen, aber unterschiedliche initiale Hashwerte verwenden und weniger Bits ausgeben. Wenn die maximale Digest-Länge der SHA-2-Familie benötigt wird oder ein Protokoll ausdrücklich SHA-512 vorschreibt (wie Ed25519 oder bestimmte HMAC-basierte Schlüsselableitungsverfahren), ist SHA-512 die richtige Wahl. Er bietet 256-Bit-Kollisionsresistenz — gleich SHA-3-512 und weit über der 128-Bit-Grenze von SHA-256.
Warum einen Online-SHA-512-Generator verwenden?
Einen SHA-512-Hash zu berechnen erfordert normalerweise einen Terminal-Befehl oder einige Zeilen Code. Dieses browserbasierte Werkzeug ermöglicht es, SHA-512-Digests sofort zu generieren — ohne Software zu installieren, zum Terminal zu wechseln oder Wegwerfskripte zu schreiben.
SHA-512-Hash-Generator: Anwendungsfälle
SHA-2-Familienvarianten im Vergleich
SHA-512 gehört zur SHA-2-Familie, definiert in FIPS 180-4. Die folgende Tabelle vergleicht die SHA-2-Varianten, die SHA-512s interne 64-Bit-Architektur teilen, sowie SHA-256 als Referenz.
| Variante | Digest-Größe | Hex-Länge | Bytes | Geeignet für |
|---|---|---|---|---|
| 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
Die Wahl des richtigen Hash-Algorithmus hängt von den Sicherheitsanforderungen, Performance-Einschränkungen und Protokollspezifikationen ab. SHA-512 bietet den breitesten Digest der SHA-2-Familie und ist auf 64-Bit-Hardware häufig schneller als SHA-256. Dieser Vergleich behandelt die wichtigsten Eigenschaften bei der Entscheidung zwischen ihnen.
| Eigenschaft | 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 |
Wie SHA-512 intern funktioniert
SHA-512 verarbeitet Eingaben über eine Merkle-Damgård-Konstruktion mit 1024-Bit-Blöcken. Es initialisiert acht 64-Bit-Zustandswörter (H0–H7) aus den Nachkommastellen der Quadratwurzeln der ersten acht Primzahlen. Jeder Block durchläuft 80 Mischdurchläufe mit bitweisen Operationen (AND, XOR, NOT, Rechtsrotation, Rechtsverschiebung) auf 64-Bit-Wörtern, kombiniert mit 80 Rundenkonstanten aus den Kubikwurzeln der ersten 80 Primzahlen.
SHA-512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
(512 bits = 64 bytes = 128 hex characters)
| Schritt | Beschreibung |
|---|---|
| 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. |
Die breitere 64-Bit-Wortgröße ist das wesentliche Unterscheidungsmerkmal gegenüber SHA-256. Auf 64-Bit-CPUs verarbeitet jede Operation doppelt so viele Bits pro Takt — daher übertrifft SHA-512 in Benchmarks häufig SHA-256, obwohl er 80 statt 64 Durchläufe ausführt. Der Lawineneffekt stellt sicher, dass das Kippen eines einzelnen Eingabebits etwa 50 % aller 512 Ausgabebits verändert.
SHA-512 Code-Beispiele
SHA-512 wird nativ in jeder gängigen Sprache und Laufzeitumgebung unterstützt. Die Web Crypto API stellt ihn in Browsern ohne Bibliothek bereit. Die folgenden Beispiele decken gängige Muster einschließlich Unicode-Verarbeitung und Datei-Hashing ab.
// 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...