Важны три свойства: стойкость к нахождению прообраза (по дайджесту найти любые входные данные), стойкость к нахождению второго прообраза (по входным данным найти другие с тем же дайджестом) и стойкость к коллизиям (найти любые два набора входных данных, которые дают коллизию). Для n-битного дайджеста универсальные атаки обходятся примерно в 2ⁿ, 2ⁿ и 2ⁿᐟ², последняя оценка — из-за парадокса дней рождения, поэтому SHA-256 обеспечивает 128-битную стойкость к коллизиям.
Стандартные функции: одобрены SHA-2 (от SHA-224 до SHA-512, FIPS 180-4) и SHA-3 вместе с функциями с расширяемым выходом SHAKE (FIPS 202); BLAKE2 (RFC 7693) широко используется вне контекстов NIST; MD5 и SHA-1 взломаны в части стойкости к коллизиям и не должны использоваться там, где атакующий может выбирать входные данные. Конструкции Меркла — Дамгора (MD5, SHA-1, SHA-2) допускают атаку удлинения сообщения, а криптографические губки (SHA-3) и конструкции HAIFA (BLAKE2) — нет.
Хеш — это не MAC, не функция хеширования паролей и не шифрование: для контроля целостности с ключом используйте HMAC или KMAC, для паролей — Argon2id, scrypt или PBKDF2, для конфиденциальности — AEAD. Квантовые компьютеры почти не влияют на хеши: алгоритм Гровера даёт не более чем квадратичное ускорение поиска прообразов, а черновик плана перехода NIST сохраняет SHA-256 и SHA-3 в числе допустимых алгоритмов.