SHA1-hashgenerator

SHA-1 genereert een 160-bits groot digest (40 hexadecimale tekens) en vormt de basis voor de object-ID’s van Git, de ouderwetse SVN-checksummen en talloze signatuursystemen uit de periode vóór 2017. Plaats gewoon een tekststring in en u krijgt het deterministische digest. Een belangrijke waarschuwing al vanaf het begin: SHA-1 is niet geschikt voor botsingsbestendigheid (SHAttered, 2017) en mag niet worden gebruikt voor nieuwe handtekeningen of het opslaan van wachtwoorden; hij is alleen geschikt voor niet-adversariale integriteitscontroles.

Hoe berekent u een SHA-1-hash?

  1. 1

    Plaats uw invoer

    Elke tekst, een string, een volledige bestand dat als tekst is opgeslagen, of een hex-sequentie.

  2. 2

    De encoding is UTF-8.

    De invoer wordt voor het hashen geserialiseerd als UTF-8-byten, wat overeenkomt met de standaardinstellingen van OpenSSL, Python hashlib en Node Crypto.

  3. 3

    De Merkle-Damgard-loop loopt

    De berichtgegevens worden gepadded, in 512-bitsblokken opgesplitst en voor elk blok 80 keer door de SHA-1-compressiefunctie gestuurd.

  4. 4

    Kopieer de 40-teken lange hexadecimale digest

    Het uitvoerresultaat bestaat altijd uit 40 kleine hexadecimale karakters (160 bits).

SHA-1 in één oogopslag

Eigenschap Waarde
Uitvoergrootte 160 bits / 40 hexadecimale karakters
Blokgrootte 512 bits
Rondes 80
Botsingsbestendigheid Gebroken (2^63 gekozen prefix)
Bestendigheid tegen preimage Onbeschadigd (op het moment van schrijven)
Snelheid ~500 MB/s op één moderne processorcore

Waar SHA-1 nog steeds acceptabel is

  • Git: Commit- en blob-ID’s zijn gebaseerd op SHA-1 (met SHA-256 als optioneel gebruik). Collisions kunnen de historische gegevens verwarren, maar maken het niet mogelijk om een commit te vervalsen zonder de sleutel van de auteur.
  • Niet-beveiligingsgerichte deduplicatie: adressering van inhoud in objectopslag waarbij het bedreigingsmodel geen aanvaller bevat.
  • Omgekeerd compatibele API’s: Legacy-webhooks zoals GitHub’s X-Hub-Signature (versie 1).
  • Forensische identificatoren: Bestandsvingerafdrukken voor deduplicatie binnen een archief.

Waar SHA-1 niet acceptabel is

  • TLS-certificaten: Browsers begonnen vanaf 2017 SHA-1-certificaten niet meer te vertrouwen.
  • Code-signing: Microsoft, Apple en Mozilla hebben SHA-1-signatuurs afgewezen.
  • Wachtwoordhashing: Gebruik Argon2id of bcrypt.
  • HMAC in een vernieuwd ontwerp: Gebruik ten minste HMAC-SHA-256.

Als u de uitvoer wilt verifiëren

Vergelijk met echo -n "hello" | sha1sum op elk Unix-systeem. De hash van de string hello is aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d.

Veelgestelde vragen

Niet op wiskundige wijze. Voor veelvoorkomende korte invoer kunnen aanvallers met een van tevoren berekende woordenlijst deze direct identificeren; daarom beschermen hashwaarden alleen niet wachtwoorden. Voor een willekeurige string van 40 karakters bestaat geen praktische omkeermethode.

Nee. SHA (Secure Hash Algorithm) is een familie algoritmen die door NIST is gepubliceerd. SHA-1 is het 160-bits-algoritme uit 1995; SHA-2 omvat de varianten SHA-224, SHA-256, SHA-384 en SHA-512.

Om compatibel te zijn met een geschiedenis van meer dan tien jaar: sinds 2017 heeft Git beveiliging tegen botsingen met gekozen prefix (SHA-1DC) en ondersteunt het repository’s gebaseerd op SHA-256 voor nieuwe projecten.

Op onze server. Uw tekst wordt via een versleutelde verbinding verzonden, gehasht met de standaard SHA-1-functie, en de digest van 40 tekens wordt teruggestuurd. We slaan de tekst die u indient niet op. Omdat SHA-1 eenrichtingsverkeer is, kan de digest zelf niet worden teruggezet naar uw invoer.

Gerelateerde tools

Tool beschikbaar in andere talen