En hashfunktion mappar data av valfri storlek till ett värde med fast storlek. Samma indata producerar alltid samma utdata. Ändra en bit och utdata ändras helt. Den egenskapen gör hashvärden användbara för integritetskontroller. Ladda ner en fil och jämför dess hashvärde med det publicerade värdet. Om de matchar anlände filen intakt. Om inte, har något ändrat den.
Hashfunktioner är enkelriktade. Du kan inte arbeta bakåt från en hash till originaldata. Det gör dem användbara för lösenordslagring. System lagrar hashen för ett lösenord, inte själva lösenordet. När du loggar in hashar systemet det du skrev och jämför det med den lagrade hashen. Om databasen läcker får angriparen hashar, inte lösenord. Svaga lösenord kan fortfarande knäckas med regnbågstabeller eller brute force, vilket är anledningen till att saltning är viktigt. Ett salt är slumpmässig data som läggs till varje lösenord före hashning, så identiska lösenord producerar olika hashar. SHA-256 och SHA-3 är vanliga kryptografiska hashar. MD5 och SHA-1 är trasiga och bör inte användas för säkerhet. Hashfunktioner driver också blockkedjor, digitala signaturer och fildeduplicering.
Hashfunktionsegenskaper
- Deterministisk — samma ingång, samma utgång
- Snabb — snabb att beräkna
- Förbildsresistent — kan inte reverseras
- Kollisionstålig — svårt att hitta två ingångar med samma hash
En hash är ett fingeravtryck, inte kryptering. Den bevisar integritet. Den döljer inte data.
Comments
No comments yet. Be the first to share a thought.
Leave a comment