Una funció hash criptogràfica és una classe especial de funció hash amb certes propietats que la fan adequada en criptografia. La funció hash és un algorisme matemàtic que assigna dades (sortida o hash) d'una determinada mida a una cadena de bits (entrada o missatge) d'una altra mida. És una funció unidireccional (d'un sol sentit), amb moltes aplicacions en l'àmbit de la seguretat informàtica tals com signatures digitals, autenticació de missatges, detecció de duplicats d'arxius i sumatoris de comprovació de dades.[1][2][3]
La funció hash ideal té cinc propietats principals :
En descarregar un arxiu, pot ser una bona idea comprovar que aquest sigui l'original, no ha sigut infectat o modificat de cap manera amb un virus. Per a aconseguir això, els creadors haurien de penjar l'arxiu original amb el seu codi hash; així, qualsevol que se’l descarregui seria capaç de comparar el valor hash de l'arxiu descarregat i comparar-lo per veure si tenen el mateix codi.
Una bona forma de guardar les contrasenyes és utilitzar una funció de hash. S'obté el hash d’una contrasenya quan es crea i se'n guarda el valor. Més tard, quan l’usuari volgués entrar en el sistema només hauria d'introduir la contrasenya i obtenir-ne el hash. Si els dos són idèntics, es valida l’accés i pot entrar.
Aquesta forma és molt útil perquè, si un atacant accedís al llistat de hashes, com que no són reversibles, no seria capaç d’obtenir les contrasenyes originals.
Els codis hash poden fer més ràpides les cerques en bases de dades. Si s'emmagatzemen grans arxius en una taula i cal trobar si n'hi ha cap d'inclòs a la llista, això es pot aconseguir buscant i comprovant tots els arxius un per un o amb un hash criptogràfic de l'arxiu. En la majoria d’ocasions en què el hash té una mida inferior a la de les dades de l'arxiu, el temps de cerca es pot escurçar significativament.
Las cadenes de blocs són una tecnologia clau en l'actualitat. S'utilitzen per a les criptomonedes i quan es vol assegurar que les dades no es modifiquin en un futur. En resum, una cadena de bloc és un conjunt de dades en el que cada bloc guarda el hash de l'anterior; d’aquesta manera, si es modifica un bloc, la cadena es trencarà i s'exposarà l’arxiu que ha sigut modificat.