Trois propriétés comptent : la résistance à la préimage (à partir d’un condensat, trouver une entrée qui le produit), la résistance à la seconde préimage (à partir d’une entrée, en trouver une autre de même condensat) et la résistance aux collisions (trouver deux entrées quelconques qui entrent en collision). Pour un condensat de n bits, les coûts génériques sont d’environ 2ⁿ, 2ⁿ et 2ⁿᐟ², ce dernier à cause du paradoxe des anniversaires ; c’est pourquoi SHA-256 offre une résistance aux collisions de 128 bits.
Fonctions standard : SHA-2 (de SHA-224 à SHA-512, FIPS 180-4) et SHA-3 avec les fonctions à sortie extensible SHAKE (FIPS 202) sont approuvées ; BLAKE2 (RFC 7693) est largement utilisée hors des contextes NIST ; MD5 et SHA-1 sont cassées pour les collisions et ne doivent pas être utilisées là où un attaquant peut choisir les entrées. Les constructions Merkle–Damgård (MD5, SHA-1, SHA-2) permettent l’extension de longueur ; les éponges (SHA-3) et les constructions HAIFA (BLAKE2), non.
Une fonction de hachage n’est ni un MAC, ni un hachage de mots de passe, ni un chiffrement : utilisez HMAC ou KMAC pour l’intégrité avec clé, Argon2id, scrypt ou PBKDF2 pour les mots de passe, et un AEAD pour la confidentialité. Les ordinateurs quantiques touchent à peine les fonctions de hachage : l’algorithme de Grover apporte au plus une accélération en racine carrée pour les préimages, et le projet de plan de transition du NIST maintient SHA-256 et SHA-3 en service.