Wat Is Hashing? Een Volledige Uitleg van Hashfuncties
Snel antwoord
Hashing converteert elke input naar een fixed-size output (hash) met een one-way functie. Dezelfde input produceert altijd dezelfde hash; verschillende inputs produceren verschillende hashes (collision resistance). Gebruik onze gratis Hash Generator om SHA-256, SHA-1 en MD5 hashes in je browser te berekenen.
Invoering
Hashing is het proces van het converteren van input-data van elke grootte naar een fixed-size output een hash of digest genoemd. Een hashfunctie is het algoritme dat deze conversie uitvoert. Cryptografische hashfuncties hebben speciale eigenschappen die ze nuttig maken voor data-integriteit, wachtwoordopslag en digitale handtekeningen. In tegenstelling tot encryptie is hashing one-way —je kunt de input niet terugkrijgen uit de hash.
Stap voor stap
-
Begrijp de eigenschappen van de hashfunctie
Cryptografische hashfuncties hebben vier belangrijke eigenschappen: (1) Deterministisch: dezelfde invoer geeft altijd dezelfde uitvoer. (2) Snel te berekenen. (3) Eénrichtingsverkeer: onhaalbaar om input uit hash terug te halen. (4) Botsingsbestendig - onhaalbaar om twee verschillende inputs met dezelfde hash te vinden. (5) Lawine-effect: een kleine verandering in de input verandert de output drastisch.
-
Leer algemene algoritmen
SHA-256 (256-bit uitvoer, 64 hexadecimale tekens) is de moderne standaard – gebruikt in Bitcoin, TLS en digitale handtekeningen. SHA-512 is veiliger maar langzamer. SHA-3 is de nieuwste familie. MD5 (128-bit) en SHA-1 (160-bit) zijn verbroken vanwege de weerstand tegen botsingen en mogen niet worden gebruikt voor beveiliging.
-
Maak onderscheid tussen hashing en encryptie
Hashing is eenrichtingsverkeer: je kunt het niet ongedaan maken. Versleuteling is tweerichtingsverkeer: u kunt ontsleutelen met een sleutel. Hashing is voor integriteit en verificatie; encryptie is voor vertrouwelijkheid. Gebruik nooit een hash om gegevens op te slaan die u wilt herstellen.
-
Gebruik hashing correct
Voor gegevensintegriteit hasht u de gegevens en vergelijkt u deze met een hash waarvan u weet dat deze goed is. Gebruik voor wachtwoorden een langzame sleutel-uitrekkende hash (bcrypt, scrypt, Argon2) met een unieke salt – niet rauwe SHA-256, die te snel en kwetsbaar is voor brute kracht.
Voorbeelden
SHA-256-hash
Invoer: Hello, World!
Uitvoer: dffd6021bb2bd5b0af676290809ec008dfca50a8d29e6ac0a52c2d7e9f0a3b0c
Lawine-effect
Invoer: Hello, World! (vs Hello, World?)
Uitvoer: Compleet andere hasj ondanks de verandering van één teken
MD5 hash (kapot, alleen verouderd)
Invoer: Hello, World!
Uitvoer: ed0760733d7505e9ceacf8af225020ac
Veelvoorkomende problemen
- Gebruik van MD5 of SHA-1 voor de veiligheid: beide zijn defect vanwege de weerstand tegen botsingen. Gebruik SHA-256 of sterker voor beveiligingsdoeleinden.
- Wachtwoorden hashen zonder zout: identieke wachtwoorden produceren identieke hashes, waardoor regenboogtafelaanvallen mogelijk zijn. Gebruik bcrypt, scrypt of Argon2 met een uniek zout.
- Verwarren van hashing met encryptie: hashing is eenrichtingsverkeer (kan niet worden teruggedraaid); encryptie is tweerichtingsverkeer (kan worden gedecodeerd met een sleutel).
- Verwachten dat hashes uniek zijn: botsingen zijn theoretisch mogelijk, maar praktisch onhaalbaar voor veilige algoritmen (SHA-256 heeft 2^256 mogelijke uitkomsten).
Tips
- Gebruik SHA-256 voor verificatie van de gegevensintegriteit, inhoudsadressering en digitale handtekeningen.
- Gebruik voor wachtwoordopslag bcrypt, scrypt of Argon2 —niet raw SHA-256. Deze algoritmen zijn voorzien van sleuteluitstrekking om brute kracht te weerstaan.
- Hashing is eenrichtingsverkeer: gebruik het nooit om gegevens op te slaan die u moet herstellen. Gebruik encryptie voor vertrouwelijke gegevens.
- Gebruik onze Hash Generator om SHA-256 en andere hashes direct in uw browser te berekenen.