Hashning omvandlar data av valfri längd till en teckensträng med fast längd, kallad ett hashvärde. Samma indata ger alltid samma hashvärde, men det går i praktiken inte att räkna baklänges från hashvärdet till originalet. Det är en envägsfunktion.
Varför en väg utan retur är poängen
Just att det inte går att vända är det som gör hashning användbar. Ett system kan lagra hashvärdet av ett lösenord i stället för lösenordet självt. När någon loggar in hashar systemet det som skrivs in och jämför med det sparade värdet. Stämmer de överens var lösenordet rätt, utan att systemet någonsin har behövt spara lösenordet i klartext.
Skillnaden mot kryptering
Kryptering är avsedd att kunna vändas med rätt nyckel. Hashning är det inte: det finns ingen nyckel som låser upp ett hashvärde till sitt original. Därför används de till olika saker. Kryptering skyddar data man behöver läsa igen senare, hashning kontrollerar och jämför värden man inte behöver kunna läsa ut.
Salt
För värden som kan gissas, som lösenord, lägger man till ett slumpmässigt tillägg innan man hashar, ett så kallat salt. Det gör att två lika lösenord får olika hashvärden och att färdiga uppslagstabeller blir värdelösa. Utan salt är även en stark hashfunktion sårbar för den som har tid att prova sig fram.