Функции модуля напрямую или инкрементно обрабатывают сообщения произвольной длины через алгоритмы хеширования, включая генерацию HMAC-значений и производных ключей, которые включают HKDF- и PBKDF2-ключи.
Подробный список алгоритмов приводит описание функции hash_algos(), а алгоритмы хеширования входят в три условные категории:
crc32b
или adler32
:
вычисляют контрольные суммы, которые приносят пользу, когда требуется
обнаружить ошибки передачи. Алгоритмы этой категории часто работают очень быстро.
Эти алгоритмы часто генерируют значения, которые «легко угадать» или которыми иногда
манипулируют, чтобы создавать коллизии, поэтому они непригодны в криптографических целях.
Испытания доказали, что ранние криптографические алгоритмы наподобие md4
,
md5
и sha1
оказались
подвержены коллизионным атакам, и часто рекомендуется
больше не использовать их для криптографических приложений.
Смотрите также FAQ по безопасному хешированию паролей, которые дают информацию о лучших практиках работы с хеш-функциями при обработке паролей.