Wat is een hashfunctie?
Een hashfunctie is een methode voor het controleren van computerfouten en gegevensorganisatie. Een grote hoeveelheid gegevens wordt gemanipuleerd met een wiskundig algoritme totdat er een klein aantal overblijft. Dit nummer wordt gebruikt als onderdeel van de catalogus waarmee een computer dat specifieke stuk informatie later kan vinden. Een goede hashfunctie moet een voldoende klein resultaat geven, zodat het gemakkelijk te gebruiken is, maar voor elke gegevensset een uniek resultaat oplevert. Een hash-functie biedt ook minimale foutcontrole, omdat beschadigde en goede gegevens verschillende resultaten moeten opleveren wanneer ze worden gehasht.
In een computerdatabase is het meestal eenvoudiger locaties met cijfers op te slaan in plaats van letters. Cijfers hebben een veel groter aantal methoden voor ordenen en sorteren dan letters. Als gevolg hiervan worden nummers vaak toegewezen aan locaties met variabele informatie in de database van een computer. Deze nummers kunnen willekeurig zijn of representatief voor de informatie.
Willekeurige nummers worden eenvoudig toegewezen op basis van de positie in het geheugen van de computer of de volgorde waarin de gegevens zijn opgeslagen. Informatie op deze manier opslaan is gebruikelijk in kleinere databases of op plaatsen waar de gegevens niet vaak veranderen. Bij gebruik in andere gebieden begint het opnieuw indexeren van de database steeds meer tijd te kosten totdat deze niet langer efficiënt is.
Representatieve informatie is waar de hashfunctie binnenkomt. De informatie, ongeacht wat deze bevat, wordt vertaald in getallen. Deze getallen worden ingevoerd in een wiskundig construct dat een klein getal, meestal een geheel getal, uitvoert. Als de hash-functie correct werkt, heeft elke locatie in dat deel van de database een eigen uniek resultaat. Als twee of meer locaties hetzelfde resultaat hebben, kunnen programma's de verkeerde informatie weergeven op basis van de gedupliceerde hash.
Het is mogelijk om een hash-functie ook voor andere dingen te gebruiken. Grote hoeveelheden zeer repetitieve gegevens kunnen worden onderverdeeld in kleinere waarden. Dit is vooral leuk als u op zoek bent naar herhaalde reeksen in grote gegevenssets. Deoxyribonucleïnezuur (DNA) bestaat bijvoorbeeld uit een zeer klein aantal verschillende componenten. Bij het opsplitsen van die componenten met behulp van hash-waarden, worden plaatsen waar twee reeksen DNA hetzelfde en verschillend zijn heel duidelijk, gewoon door twee kleine kolommen met getallen te vergelijken.
Het laatste gebied waarin hashfuncties nuttig zijn, is het controleren van fouten. Wanneer informatie aanvankelijk wordt gehasht, wordt de waarde vastgelegd als onderdeel van de index van de locatie. Als die informatie later nodig is, wordt de informatie samen met die waarde opgehaald. Als het programma de informatie opnieuw wast en het resultaat is anders, is er op enig moment een beschadiging opgetreden. Deze corruptie zit meestal bij de gegevens, omdat een hash-corruptie zou hebben voorkomen dat de gegevens in de eerste plaats zijn opgehaald.