SHA-1-hashgenerator

Få den 160-biters SHA-1-hashverdien av tekst, hex-byte eller en fil mens du skriver. Kontroller den mot en publisert kontrollsum, og se SHA-256, SHA-512 og MD5 for de samme inndataene med ett blikk.

Alle algoritmer

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Skriv inn tekst, bytt inndata til Hex for rå byte, eller klikk på Åpne fil.
  2. SHA-1 er forhåndsvalgt; endre valget under Algoritme hvis du vil sammenligne med en annen hashfunksjon.
  3. Under Utdata som velger du hex (små bokstaver), slik sha1sum og Git skriver den, HEX (store bokstaver) eller Base64.
  4. Lim inn en forventet SHA-1-verdi i feltet Sammenlign med; siden viser Samsvarer eller Samsvarer ikke.

Hva er SHA-1?

SHA-1 (Secure Hash Algorithm 1) ble utviklet av NSA og publisert av NIST i 1995 som FIPS 180-1, og erstattet den kortlivede SHA-0. I dag er den spesifisert i FIPS 180-4, og RFC 3174 beskriver den med eksempelkode i C. SHA-1 behandler blokker på 512 bit i 80 runder og gir en hashverdi på 160 bit: 40 hex-tegn eller 28 Base64-tegn.

Som alle hasher er SHA-1 enveis. En hashverdi kan ikke dekrypteres, bare sammenlignes med hashene av gjetninger. Det var slik SHA-1-passordhashene uten salt som lekket fra LinkedIn i 2012, ble knekt i stor skala; passord hører hjemme i Argon2, scrypt, bcrypt eller PBKDF2.

SHAttered: derfor frarådes SHA-1

I februar 2017 publiserte forskere fra CWI Amsterdam og Google SHAttered, den første reelle SHA-1-kollisjonen: to forskjellige PDF-filer med samme hash, funnet med omtrent 2^63 SHA-1-beregninger. I 2020 brukte Gaëtan Leurent og Thomas Peyrin («SHA-1 is a Shambles») en kollisjon med valgt prefiks til å demonstrere forfalskede SHA-1-signaturer på PGP-nøkler, til en kostnad som er innenfor rekkevidde for en angriper med god økonomi.

  • Offentlige CA-er sluttet å utstede SHA-1-baserte TLS-sertifikater i 2016, og nettleserne sluttet å stole på dem tidlig i 2017.
  • NIST har ikke tillatt SHA-1 for nye digitale signaturer siden 2013 og planlegger å fase den helt ut innen utgangen av 2030.
  • De fleste Git-repositorier identifiserer fortsatt objekter med SHA-1, beregnet med en forsterket implementasjon som oppdager kollisjonsforsøk; Git kan også opprette repositorier som bruker SHA-256.

Kollisjoner knekker ikke HMAC, så HMAC-SHA1 finnes fortsatt i TOTP-koder og eldre webhook-signaturer; beregn den med HMAC-generatoren. For alt nytt bør du velge SHA-256.

Git-objekt-ID-er, Base64 og tegnkoding

En Git-blob-ID er ikke SHA-1 av filen alene. Git hasher en header som består av blob, et mellomrom, størrelsen i byte og en nullbyte, etterfulgt av innholdet. For å gjenskape den her bytter du inndata til hex og tar med disse header-bytene: For hello pluss et linjeskift er hex-inndataene 626c6f6220360068656c6c6f0a.

$ printf 'hello\n' | sha1sum
f572d396fae9206628714fb2ce00f72e94f2258f  -
$ printf 'hello\n' | git hash-object --stdin
ce013625030ba8dba906f756967f9e9ca394464a

SHA-1 vises vanligvis som hex med små bokstaver. Base64 brukes i WebSocket-håndtrykket, der Sec-WebSocket-Accept er Base64-kodet SHA-1 av klientnøkkelen pluss en fast GUID, og i LDAP-passordverdier av typen {SHA}. Husk at hashen beregnes av byte: Tekst med bokstaver som é eller ø har én SHA-1 i UTF-8 og en annen i Windows-1252.

SHA-1 på kommandolinjen og i kode

sha1sum file.zip                          # Linux
shasum file.zip                           # macOS (SHA-1 er standard)
certutil -hashfile file.zip SHA1          # Windows
Get-FileHash file.zip -Algorithm SHA1     # PowerShell

# Python
hashlib.sha1(data).hexdigest()

// Node.js
crypto.createHash('sha1').update(data).digest('hex')

Denne siden beregner SHA-1 med Web Crypto API-et som er innebygd i nettleseren din, så inndataene forlater aldri enheten din. Tabellen Alle algoritmer viser MD5-, SHA-256-, SHA-384-, SHA-512- og CRC-verdiene for de samme inndataene.

Eksempler

Inndata (UTF-8)SHA-1
Hello, World!0a0a9f2a6772942557ab5355d76af442f8f65e01
Base64.is6c667ee2efd2020349eed40efa07c26683f613c8
你好440ee0853ad1e99f962b63e459ef992d7c211722

Ofte stilte spørsmål

Er SHA-1 fortsatt trygg å bruke?

Ikke der en angriper kan velge eller påvirke inndataene, for eksempel i signaturer og sertifikater, fordi det er mulig å lage SHA-1-kollisjoner. Den oppdager fortsatt utilsiktet skade, og HMAC-SHA1 påvirkes ikke av kollisjoner. Bruk SHA-256 eller SHA-512 i nye løsninger.

Kan en SHA-1-hash reverseres?

Nei. Det finnes ingen nøkkel og ingen dekryptering. Oppslagsnettsteder finner bare inndata som allerede står i tabellene deres over vanlige ord og lekkede passord. Derfor er lange, tilfeldige inndata trygge for dem, mens et kort passord ikke er det.

Hvor lang er en SHA-1-hash?
160 bit, eller 20 byte: 40 hex-tegn eller 28 Base64-tegn som slutter på én =. RIPEMD-160 har samme lengde, og passordhasher fra MySQL 4.1+ er en stjerne etterfulgt av 40 hex-tegn. Hashidentifikatoren viser kandidatene for en gitt streng.
Hvordan kontrollerer jeg en fil mot en publisert SHA-1?

Åpne filen, og lim deretter inn den publiserte verdien i feltet Sammenlign med. Hex med store eller små bokstaver og Base64 godtas, og siden viser Samsvarer eller Samsvarer ikke.

Hva er forskjellen mellom SHA-1 og SHA-256?

Begge er publisert av NIST, men SHA-256 tilhører den nyere SHA-2-familien, gir 256-biters utdata og har ingen kjente praktiske angrep. SHA-1 har kortere utdata, og kollisjonsmotstanden er brutt.