Du laddar ner ett program och webbplatsen visar en lång rad bokstäver och siffror bredvid länken: det är ett fingeravtryck (hash) som låter dig kontrollera att filen varken skadats eller ändrats. Samma mekanismer används, i ett annat sammanhang, för att lagra lösenord. De två användningarna kräver olika algoritmer, och att blanda ihop dem är ett vanligt säkerhetsmisstag.
Vad ett fingeravtryck är
En hashfunktion gör vilka data som helst (ett ord, en fil på 4 GB) till en sträng av fast längd. Den är deterministisk (samma indata ger alltid samma fingeravtryck) och känslig: att ändra en enda bit ändrar resultatet helt. Till exempel börjar SHA-256 av texten ”abc” med ba7816bf…, medan det för ”abd” börjar med a52d159f…, utan någon likhet alls. Operationen går inte att vända: du kan inte återskapa texten från fingeravtrycket.
| Algoritm | Storlek | Hexadecimala tecken | Status |
|---|---|---|---|
| MD5 | 128 bitar | 32 | Knäckt för säkerhet (kollisioner kan framställas); räcker för att upptäcka oavsiktliga skador. |
| SHA-1 | 160 bitar | 40 | Föråldrat för säkerhet. |
| SHA-256 | 256 bitar | 64 | Nuvarande referens för integritet. |
| SHA-512 | 512 bitar | 128 | Längre fingeravtryck. |
Verifiera en nedladdad fil, steg för steg
- Hitta det publicerade fingeravtrycket på den officiella webbplatsen (ofta ”SHA256” eller ”checksum”), helst på en HTTPS-sida som skiljer sig från nedladdningslänken.
- Öppna SHA-256-hashgenerator (eller MD5-hashgenerator om bara MD5 publiceras) och släpp filen. Den läses i block om 4 MB med en förloppsindikator: inte ens en stor fil (upp till 4 GB) tar slut på minne. Du kan släppa flera.
- Klistra in det förväntade fingeravtrycket i ”Jämför”: hex (versaler eller gemener, med eller utan ”:”), base64 eller en rad från sha256sum godtas.
- Om verktyget visar att de stämmer är filen identisk med den som utgivaren släppte. Annars öppnar du den inte: ladda ner den igen.
En viktig punkt: ett fingeravtryck verifierar att du fick samma fil som den beskrivna, inte att filen är ofarlig. Om en angripare kontrollerar både filen och fingeravtrycket som visas på samma sida bevisar kontrollen ingenting.
Hasha text: detaljerna som ändrar allt
Text hashas som UTF-8, exakt som den skrivs. Ett avslutande radbyte ändrar fingeravtrycket: SHA-256 av ”abc” och av ”abc” följt av ett radbyte är helt olika (edeaaff3… mot ba7816bf…). Det är den vanligaste orsaken till att ”min hash inte stämmer”: kontrollera osynliga mellanslag och radbyten. Markera HMAC för att skapa en autentiseringskod med en hemlig nyckel: bara den som känner till nyckeln kan återskapa samma fingeravtryck.
Lösenord: varför inte SHA-256, och bcrypt i stället
SHA-256 är medvetet mycket snabb: en angripare som kommit över en lista med hashar kan pröva miljarder gissningar per sekund. För lösenord behövs en avsiktligt långsam algoritm med ett tillägg (salt), som bcrypt. Några kännetecken:
- Saltet är slumpmässigt och ingår i resultatet: samma lösenord ger olika hash varje gång, och verifieringen fungerar ändå.
- bcrypt läser bara de första 72 byten av lösenordet (i UTF-8 räknas ett å som 2, en emoji som 4).
- Kostnadsfaktorn avgör hur långsam beräkningen är: höj den allt eftersom datorerna blir snabbare.
För att välja ett starkt lösenord, läs Starka lösenord: entropi, lösenfraser och dataläckor.
Vanliga misstag
- Att använda MD5 eller SHA-1 för signaturer eller lösenord.
- Att lagra lösenord med en vanlig SHA-256, även med salt.
- Att jämföra fingeravtryck med blotta ögat: en enda bokstav skiljer och du ser det inte. Använd verktygets jämförelse.
- Att bortse från skillnader i versaler/gemener eller radbyten när man hashar text.
- Att tro att ett identiskt fingeravtryck garanterar att filen är ofarlig.
Ärliga begränsningar
- En hash krypterar ingenting: den går inte att vända men korta lösenord kan hittas genom gissning.
- MD5- och SHA-1-fingeravtryck bör inte längre användas för säkerhet.
- bcrypt är ett solitt val men ersätter inte en komplett policy (begränsning av antal försök, tvåfaktorsautentisering).
Vanliga frågor
Laddas min fil upp för att beräkna dess fingeravtryck?
Nej. Beräkningen görs i din webbläsare; filen läses i block om 4 MB på din enhet.
Varför har två nästan identiska texter orelaterade fingeravtryck?
Med avsikt: att ändra en enda bit ändrar resultatet helt. Det kallas lavineffekten.
Går MD5 fortfarande att använda?
För att upptäcka oavsiktliga skador, ja. För allt som rör säkerhet (signatur, lösenord), nej: använd SHA-256 eller, för lösenord, bcrypt.
Vilken bcrypt-kostnad ska jag välja?
10 till 12 för en webbplats. Välj det högsta värde som dina servrar klarar utan att göra användarnas inloggning långsam.
Kan en text återskapas från sitt fingeravtryck?
Inte direkt. Men ett kort eller vanligt lösenord kan hittas genom gissning, därav värdet av en långsam algoritm som bcrypt.