SHA-1-hashgenerator

Få fram det 160 bitar långa SHA-1-hashvärdet för text, hexbyte eller en fil medan du skriver. Jämför det med en publicerad kontrollsumma och se direkt SHA-256, SHA-512 och MD5 för samma indata.

Alla algoritmer

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Skriv in text, välj Hex under Indata som för att ange hexbyte, eller klicka på Öppna fil.
  2. SHA-1 är förvald; byt i listan Algoritm om du vill jämföra med en annan hashfunktion.
  3. Under Utdata som väljer du hex (gemener), som är vad sha1sum och Git skriver ut, HEX (versaler) eller Base64.
  4. Klistra in ett förväntat SHA-1-värde i fältet Jämför med; sidan visar Stämmer eller Stämmer inte.

Vad är SHA-1?

SHA-1 (Secure Hash Algorithm 1) konstruerades av NSA och publicerades av NIST 1995 som FIPS 180-1, som ersättare för den kortlivade SHA-0. I dag specificeras den i FIPS 180-4, och RFC 3174 beskriver den med exempelkod i C. SHA-1 bearbetar block om 512 bitar i 80 rundor och ger ett hashvärde på 160 bitar: 40 hextecken eller 28 Base64-tecken.

Som alla hashfunktioner är SHA-1 envägs. Ett hashvärde kan inte dekrypteras, bara matchas genom att man hashar gissningar. Det var så de osaltade SHA-1-lösenordshasharna som läckte från LinkedIn 2012 knäcktes i stor skala; lösenord hör hemma i Argon2, scrypt, bcrypt eller PBKDF2.

SHAttered: därför är SHA-1 utfasad

I februari 2017 publicerade forskare från CWI Amsterdam och Google SHAttered, den första verkliga SHA-1-kollisionen: två olika PDF-filer med samma hashvärde, framtagna med ungefär 2^63 SHA-1-beräkningar. År 2020 använde Gaëtan Leurent och Thomas Peyrin ("SHA-1 is a Shambles") en kollision med valt prefix för att visa förfalskade SHA-1-signaturer på PGP-nycklar, till en kostnad inom räckhåll för en angripare med gott om resurser.

  • Publika certifikatutfärdare slutade utfärda TLS-certifikat med SHA-1 2016, och webbläsarna slutade lita på dem i början av 2017.
  • NIST har inte tillåtit SHA-1 för nya digitala signaturer sedan 2013 och planerar att fasa ut algoritmen helt till slutet av 2030.
  • De flesta Git-repon identifierar fortfarande objekt med SHA-1, beräknad med en härdad implementation som upptäcker kollisionsförsök; Git kan också skapa repon som använder SHA-256.

Kollisioner knäcker inte HMAC, så HMAC-SHA1 förekommer fortfarande i TOTP-koder och äldre webhook-signaturer; beräkna sådana värden med HMAC-generatorn. För allt nytt väljer du SHA-256.

Git-objekt-ID:n, Base64 och teckenkodning

Ett blob-ID i Git är inte SHA-1 för enbart filen. Git hashar ett huvud som består av blob, ett mellanslag, storleken i byte och en nollbyte, följt av innehållet. För att återskapa det här väljer du Hex under Indata som och tar med huvudets byte: för hello plus en radbrytning är hexindatan 626c6f6220360068656c6c6f0a.

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

SHA-1 visas oftast som hex med gemener. Base64 förekommer i WebSocket-handskakningen, där Sec-WebSocket-Accept är Base64-formen av SHA-1 för klientnyckeln plus ett fast GUID, och i LDAP-lösenordsvärden av typen {SHA}. Kom ihåg att hashvärdet beräknas över byte: text med bokstäver som å, ä och é har en SHA-1 i UTF-8 och en annan i Windows-1252.

SHA-1 på kommandoraden och i kod

sha1sum file.zip                          # Linux
shasum file.zip                           # macOS (SHA-1 är 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')

Den här sidan beräknar SHA-1 med webbläsarens inbyggda Web Crypto API, så indatan lämnar aldrig din enhet. Tabellen Alla algoritmer visar MD5, SHA-256, SHA-384, SHA-512 och CRC-värden för samma indata.

Exempel

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

Vanliga frågor

Är SHA-1 fortfarande säkert att använda?

Inte där en angripare kan välja eller påverka indatan, som i signaturer och certifikat, eftersom det går att ta fram SHA-1-kollisioner. SHA-1 upptäcker fortfarande oavsiktlig skada, och HMAC-SHA1 påverkas inte av kollisioner. För nya projekt använder du SHA-256 eller SHA-512.

Kan ett SHA-1-hashvärde vändas tillbaka?

Nej. Det finns ingen nyckel och ingen dekryptering. Uppslagstjänster hittar bara indata som redan finns i deras tabeller över vanliga ord och läckta lösenord, och därför är lång slumpmässig indata säker mot dem medan ett kort lösenord inte är det.

Hur långt är ett SHA-1-hashvärde?
160 bitar, eller 20 byte: 40 hextecken eller 28 Base64-tecken som slutar med ett =. RIPEMD-160 har samma längd, och lösenordshashar i MySQL 4.1+ består av en asterisk följd av 40 hextecken. Verktyget Identifiera hashtyp listar de möjliga algoritmerna för en viss sträng.
Hur kontrollerar jag en fil mot ett publicerat SHA-1-värde?

Klicka på Öppna fil och klistra sedan in det publicerade värdet i fältet Jämför med. Hex med versaler eller gemener och Base64 accepteras, och sidan visar Stämmer eller Stämmer inte.

Vad är skillnaden mellan SHA-1 och SHA-256?

Båda har publicerats av NIST, men SHA-256 tillhör den nyare SHA-2-familjen, ger 256 bitars utdata och har inga kända praktiska attacker. SHA-1 har kortare utdata, och dess kollisionsresistens är knäckt.