Een hashfunctie is eenfunctie in de informatica die invoer uit een breed domein van waarden omzet in een (meestal) kleiner bereik, meestal een deelverzameling van de gehele getallen. De output wordt de hash, hashcode of digest van de input genoemd. Het is een vorm van pseudonimiseren. Het woord hash komt uit het Engels en betekent hier hakken.
Hashfuncties worden gebruikt in hashtabellen, cryptografie en dataverwerking. Bij een domein dat groter is dan het bereik is de functie uiteraard niet injectief, maar een goede hashfunctie is er een die in de praktijk weinig botsingen veroorzaakt in het domein waarmee ze werkt, dit wil zeggen dat er in de praktijk weinig tweetallen verschillende invoerwaarden voorkomen die dezelfde uitvoer geven. Afhankelijk van de toepassing van de hashfunctie moet deze ook zo zijn dat zo'n tweetal zelfs zeer moeilijk te vinden is als men er naar zou zoeken.
De SHA-familie van functies bestaat uit voorbeelden hiervan.
Cryptografische hash
Een cryptografisch veilige hashfunctie heeft de eigenschappen dat het niet mogelijk is om een blok gegevens te vinden dat eengegeven hashcode oplevert, of om twee verschillende blokken gegevens te vinden die dezelfde hashcode opleveren, mits de gegevensblokken niet te klein zijn (zodat ze allemaal geprobeerd kunnen worden). Voorwaarde is ook dat de hashcodes niet te klein zijn, want het proberen van evenveel blokken gegevens als het aantal mogelijke hashcodes levert gemiddeld één keer de gegeven hashcode op.
Copyright 2024 puzzlefactory.com Alle rechten voorbehouden.