SHA-1 Hash Generator

Generera SHA-1-hash från valfri text

Inmatningstext

Körs lokalt · Säkert att klistra in hemligheter

SHA-1-hash

SHA-1-hashvärdet visas här…

Vad är SHA-1-hashning?

SHA-1 (Secure Hash Algorithm 1) är en kryptografisk hashfunktion som producerar ett fast 160-bitars (20-byte) sammandrag från valfri indata. Publicerad av NSA och standardiserad av NIST 1995 som FIPS PUB 180-1, och senare dokumenterad i RFC 3174, utformades SHA-1 som en starkare efterföljare till SHA-0 och MD5. Algoritmen bearbetar indata i 512-bitarsblock genom 80 omgångar av bitvisa operationer och producerar ett hexadecimalt fingeravtryck på 40 tecken som utgjorde ryggraden i SSL/TLS, PGP, SSH och IPsec i över ett decennium.

Liksom alla kryptografiska hashfunktioner är SHA-1 en envägstransformation: att beräkna hashvärdet från indata är snabbt, men att återskapa indata enbart från hashvärdet är beräkningsmässigt ogörligt. En enstaka bitsförändring i indatan ger ett helt annat 160-bitarssammandrag — en egenskap som kallas lavineffekten. SHA-1 avbildar ett godtyckligt stort indatautrymme på en fast 160-bitarsutgång, vilket innebär att kollisioner (två olika indata som ger samma hash) matematiskt måste existera. Säkerhetskravet för en hashfunktion är att hitta sådana kollisioner ska kräva ungefär 2^80 operationer — hälften av utdatans bitlängd.

År 2017 publicerade Google och CWI Amsterdam SHAttered-attacken, som demonstrerade den första praktiska SHA-1-kollisionen genom att producera två olika PDF-filer med samma sammandrag. Attacken krävde ungefär 2^63,1 SHA-1-beräkningar — långt under den teoretiska gränsen på 2^80. År 2020 sänkte Gaetan Leurent och Thomas Peyrin kostnaden ytterligare med en vald-prefixkollisionsattack som krävde ungefär 2^63,4 operationer. Till följd av detta har alla större webbläsare, certifikatutfärdare och standardiseringsorgan fasats ut SHA-1 för digitala signaturer och TLS-certifikat. SHA-1 används dock fortfarande aktivt för icke-säkerhetsrelaterade ändamål: Git-objekt-ID:n (även om Git migrerar till SHA-256), äldre HMAC-konstruktioner och kontrollsummor för filintegritet där motståndarmässig kollisionsresistens inte krävs.

Varför använda den här SHA-1-generatorn?

Generera SHA-1-hashar direkt utan att installera något eller skriva kod. Klistra in din text och få det 40-tecken långa hex-sammandraget i realtid — användbart för att verifiera äldre kontrollsummor, felsöka Git-internals eller testa hashbaserade arbetsflöden.

Omedelbar hashning
Utdata uppdateras medan du skriver. Inga knapptryckningar, inget väntande — SHA-1-sammandraget visas tecken för tecken när du ändrar indatan.
🔒
Integritetsfokuserad bearbetning
All hashning körs lokalt i din webbläsare med Web Crypto API. Din inmatningstext lämnar aldrig din enhet och skickas aldrig till någon server.
📋
Kopiera med ett klick
Kopiera hashvärdet till urklipp med ett enda klick. Växla mellan gemener och versaler i hex-utdata för att matcha det format ditt system förväntar sig.
🔍
Inget konto krävs
Ingen registrering, ingen inloggning, inga användningsgränser. Öppna sidan och börja hasha direkt. Fungerar på alla enheter med en modern webbläsare.

Användningsområden för SHA-1

Git-internals och felsökning
Git identifierar varje objekt (commit, träd, blob, tagg) med sitt SHA-1-hashvärde. När du felsöker Git-rörkommandon, verifierar packfiler eller skriver anpassade Git-verktyg hjälper en snabb SHA-1-generator dig att kontrollera objekt-ID:n mot förväntade värden.
Verifiering av äldre system
Många äldre system, paketregister och firmware-uppdateringsmekanismer publicerar fortfarande SHA-1-kontrollsummor tillsammans med nedladdningar. Generera och jämför SHA-1-hashar för att verifiera filintegritet när SHA-256-sammandrag inte är tillgängliga.
Subresursintegritet (SRI)
Även om sha256 och sha384 föredras för SRI-hashar i HTML-skript- och länktaggar förlitar sig vissa äldre CDN-konfigurationer fortfarande på SHA-1. Generera det förväntade sammandraget för att granska eller migrera befintliga SRI-attribut.
QA och regressionstestning
Jämför SHA-1-hashar av API-svar, byggartefakter eller databasögonblicksbilder mellan testkörningar för att upptäcka oväntade ändringar utan att utföra en fullständig byte-för-byte-jämförelse av stora utdata.
Datadeduplicering
Beräkna SHA-1-hashar av filinnehåll eller dataposter i ETL-pipelines för att identifiera dubbletter. Den 160-bitars utdatan ger en starkare unikhetgaranti än MD5 för icke-fientliga dedupliceringsscenarier.
Lärande och utbildning
SHA-1 är en väldokumenterad algoritm med omfattande akademisk litteratur. Experimentera med den för att förstå Merkle-Damgard-konstruktionen, meddelandeschemaläggning och varför kollisionsresistens bryts ned när utdatalängden är för kort i förhållande till modern beräkningskraft.

SHA-1 jämfört med andra hashalgoritmer

SHA-1 producerar ett 160-bitarssammandrag — längre än MD5 (128 bitar) men betydligt kortare än SHA-2-familjen. Tabellen nedan jämför sammandragsstorlekar, standarder och lämpliga användningsfall för varje algoritm.

AlgoritmSammandrags­storlekHex-längdStandardBäst för
SHA-1160 bits40 hex chars1995 / RFC 3174Deprecated — legacy git commits, old TLS
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
MD5128 bits32 hex chars1992 / RFC 1321Checksums only — broken since 2004
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, alternative to SHA-2
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Hur SHA-1 fungerar

SHA-1 följer Merkle-Damgard-konstruktionen: meddelandet fylls ut, delas upp i 512-bitarsblock, och varje block bearbetas genom 80 omgångar bitvisa operationer som blandar indatan med ett meddelandeschema härlett från blocket. Fem 32-bitars tillståndsord (H0 till H4) bär det löpande hashtillståndet, och den slutliga sammansättningen av dessa ord producerar det 160-bitars sammandraget.

Input: "hello world"
SHA-1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
(160 bits = 20 bytes = 40 hex characters)
StegBeskrivning
PaddingAppend a 1-bit, then zeros, until message length is 448 mod 512. Append the original length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
ExpansionExpand each 16-word block into 80 words using a left-rotate-by-1 XOR feedback schedule.
CompressionProcess 80 rounds per block using four nonlinear functions (Ch, Parity, Maj, Parity) across rounds 0-19, 20-39, 40-59, and 60-79.
OutputConcatenate the five 32-bit state words (H0-H4) into a 160-bit (20-byte) digest, rendered as 40 hexadecimal characters.

Den viktigaste skillnaden mellan SHA-1 och MD5 är antalet tillståndsord (5 mot 4), antalet omgångar per block (80 mot 64) och användningen av ett meddelandeschema med vänsterrotationsfeedback. Dessa skillnader ger SHA-1 en större utdata (160 mot 128 bitar) och gav ursprungligen en högre säkerhetsmarginal, även om båda algoritmerna nu anses brutna för kollisionsresistens.

Kodexempel

Hur man genererar SHA-1-hashar i populära språk och miljöer. Till skillnad från MD5 är SHA-1 tillgänglig i webbläsarens Web Crypto API, vilket gör den användbar utan externa bibliotek i både webbläsar- och Node.js-miljöer.

JavaScript (Web Crypto API — browser & Node.js)
// SHA-1 is available in the Web Crypto API
async function sha1(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-1', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha1('hello world')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha1').update('hello world').digest('hex')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
Python
import hashlib

# Basic SHA-1 hash
result = hashlib.sha1(b'hello world').hexdigest()
print(result)  # → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a string (encode to bytes first)
text = 'hello world'
hashlib.sha1(text.encode('utf-8')).hexdigest()
# → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a file in chunks
with open('file.bin', 'rb') as f:
    sha1 = hashlib.sha1()
    for chunk in iter(lambda: f.read(8192), b''):
        sha1.update(chunk)
    print(sha1.hexdigest())
Go
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}
CLI (Linux / macOS)
# Using sha1sum (Linux) or shasum (macOS)
echo -n "hello world" | sha1sum
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# macOS
echo -n "hello world" | shasum -a 1
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# Hash a file
sha1sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl sha1
# → SHA1(stdin)= 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

Vanliga frågor

Är SHA-1 fortfarande säker att använda?
SHA-1 är inte säker för säkerhetskänsliga tillämpningar. SHAttered-attacken 2017 demonstrerade praktisk kollisionsgenerering, och attacken med valt prefix 2020 sänkte kostnaden ytterligare. För digitala signaturer, TLS-certifikat eller situationer där en angripare kan konstruera kolliderande indata bör du använda SHA-256 eller SHA-3 i stället. För icke-säkerhetsändamål som kontrollsummor och cachenycklar där ingen angripare kontrollerar indatan fungerar SHA-1 fortfarande.
Vad är skillnaden mellan SHA-1 och SHA-256?
SHA-1 producerar ett 160-bitars (40 hex-tecken) sammandrag och är sårbar för kollisionsattacker. SHA-256 producerar ett 256-bitars (64 hex-tecken) sammandrag och tillhör SHA-2-familjen, som inte har några kända praktiska attacker. SHA-256 är ungefär 20–30 % långsammare än SHA-1 på samma hårdvara, men de extra 96 bitarna i utdata och frånvaron av kända strukturella svagheter gör det till standardrekommendationen för alla nya projekt.
Varför använder Git SHA-1?
När Linus Torvalds designade Git 2005 ansågs SHA-1 vara säker och erbjöd en bra balans mellan hastighet och kollisionsresistens för innehållsadresserbar lagring. Git använder SHA-1 som en innehållsidentifierare, inte som en säkerhetsmekanism — det upptäcker oavsiktlig korruption, inte avsiktlig manipulering. Sedan 2021 har Git övergått till SHA-256 via hashutvidgningsramverket som beskrivs i git-hash-function-transition-planen.
Kan man vända på ett SHA-1-hashvärde för att få tillbaka originalindatan?
Nej. SHA-1 är en envägsfunktion som förkastar information under hashningen. För korta eller vanliga indata kan angripare använda regnbågstabeller eller brute force-sökning för att hitta ursprunglig klartext, men detta är ingen reversering av algoritmen — det är en uttömmande sökning i indata­utrymmet. För lösenord bör du använda bcrypt, scrypt eller Argon2 i stället för någon snabb hashfunktion.
Hur fungerar SHAttered-attacken?
SHAttered-attacken utnyttjar strukturella svagheter i SHA-1:s kompressionsfunktion. Genom att noggrant konstruera två olika 512-bitarsblock som producerar samma mellanliggande hashtillstånd skapade angriparna två PDF-filer med identiska SHA-1-sammandrag men olika synligt innehåll. Attacken krävde ungefär 2^63 SHA-1-beräkningar — cirka 6 500 år på en enskild CPU, men genomförbar på ett GPU-kluster på några månader. Kostnaden har sedan dess sjunkit ytterligare med förbättrade tekniker.
Vad är skillnaden mellan SHA-1 och HMAC-SHA1?
SHA-1 är en vanlig hashfunktion: hash = SHA1(meddelande). HMAC-SHA1 är en nyckelbaserad meddelandeautentiseringskod: mac = HMAC(nyckel, meddelande). HMAC omsluter hashfunktionen i en konstruktion som förhindrar längdförlängningsattacker och kräver en hemlig nyckel. Intressant nog anses HMAC-SHA1 fortfarande säker för meddelandeautentisering trots att SHA-1 i sig är bruten för kollisionsresistens, eftersom HMAC-säkerheten beror på pseudoslumpmässiga egenskaper hos kompressionsfunktionen, inte på kollisionsresistens.
Bör jag använda SHA-1 eller MD5 för filkontrollsummor?
SHA-1 är ett bättre val än MD5 för filkontrollsummor. MD5 producerar ett 128-bitarssammandrag och har varit brutet sedan 2004, med praktiska kollisionsattacker som nu kan utföras på sekunder. SHA-1 producerar ett 160-bitarssammandrag och dess kollisionsattacker, trots att de demonstrerats, är fortfarande dyrare. För alla nya system bör du dock föredra SHA-256 — det ger ett 256-bitarssammandrag utan kända praktiska attacker och stöds väl på alla plattformar och i alla programmeringsspråk.