SHA1-hashgenerator

SHA-1 producerar en 160-bitars digest (40 hex-tecken) och är hashen bakom git-objekt-ID:n, äldre SVN-checksummor och en hög med signeringssystem från före 2017. Klistra in valfri text så får du den deterministiska hashen. En stor brasklapp direkt: SHA-1 är knäckt vad gäller kollisionsmotstånd (SHAttered, 2017) och får inte användas för nya signaturer eller lösenordslagring, den duger endast för integritetskontroller utan motståndare.

Så beräknar du en SHA-1-hash

  1. 1

    Klistra in din indata

    Valfri text: en sträng, en hel fil dumpad som text, eller en hex-sekvens.

  2. 2

    Teckenkodningen är UTF-8

    Indata serialiseras som UTF-8-byte före hashning, vilket matchar standarden i OpenSSL, Python hashlib och Node crypto.

  3. 3

    Merkle-Damgård-loopen körs

    Meddelandet fylls ut, delas i 512-bitars block och matas genom SHA-1-kompressionsfunktionen i 80 rundor per block.

  4. 4

    Kopiera den 40 tecken långa hex-digesten

    Utdata är alltid 40 gemena hex-tecken (160 bitar).

SHA-1 i korthet

Egenskap Värde
Utdatastorlek 160 bitar / 40 hex-tecken
Blockstorlek 512 bitar
Rundor 80
Kollisionsmotstånd Knäckt (2^63 vald prefix)
Förbildsmotstånd Intakt (i skrivande stund)
Hastighet ~500 MB/s på en modern kärna

Där SHA-1 fortfarande är acceptabelt

  • Git. Commit- och blob-ID:n är SHA-1 (med SHA-256 som tillval). Kollisioner skulle förvirra historiken men kan inte förfalska en commit utan författarens nyckel.
  • Deduplicering utan säkerhetskrav. Innehållsadressering i objektlager där hotmodellen inte inkluderar en angripare.
  • Bakåtkompatibla API:er. Äldre webhooks som GitHubs X-Hub-Signature (v1).
  • Forensiska identifierare. Filfingeravtryck för deduplicering i ett arkiv.

Där SHA-1 inte är acceptabelt

  • TLS-certifikat. Webbläsare slutade lita på SHA-1-certifikat från och med 2017.
  • Kodsignering. Microsoft, Apple och Mozilla avvisade SHA-1-signaturer.
  • Lösenordshashning. Använd Argon2id eller bcrypt.
  • HMAC i en ny design. Använd minst HMAC-SHA-256.

Om du vill verifiera utdata

Jämför mot echo -n "hello" | sha1sum på valfritt Unix-system. Hashen för strängen hello är aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d.

Vanliga frågor

Inte matematiskt. För vanliga korta indata kan en angripare med en förberäknad ordlista identifiera dem direkt, vilket är varför hashar ensamma inte skyddar lösenord. För en 40 tecken lång slumpsträng finns ingen praktisk omvändning.

Nej. SHA (Secure Hash Algorithm) är en familj publicerad av NIST. SHA-1 är 160-bitarsalgoritmen från 1995. SHA-2 är familjen som inkluderar SHA-224, SHA-256, SHA-384 och SHA-512.

För kompatibilitet med över ett decennium av historik. Sedan 2017 härdar git mot kollisioner med vald prefix (SHA-1DC) och stöder SHA-256-repositorier för nya projekt.

På vår server. Din text skickas via en krypterad anslutning, hashas med standardfunktionen SHA-1 och den 40 tecken långa digesten returneras. Vi lagrar inte texten du skickar. Eftersom SHA-1 är enkelriktad kan själva digesten inte omvandlas tillbaka till din indata.

Relaterade verktyg

Verktyget finns på andra språk