Хэш-функции имеют некоторое внутреннее состояние, и функция mix используется для перемешивания внутреннего состояния. Другая функция, combine, используется для комбинации входных блоков с внутренним состоянием. Иногда эти функции объединяют в одну, что не меняет их сути. Потом состояние проходит постобработку (например, обрезается до нужной длины хэша). И все, хэш готов.
initialize the internal state; for (each block in input) { combine (the internal state, the current input block); mix (the internal state); } value = postprocess (the internal state); return value;
Почти все известные хэш-функции построены по этой модели за исключением MD4 и некоторых других.