Вы можете использовать функцию расширяемого вывода (XOF), например SHAKE-128 / SHAKE-256, определенную в NIST.FIPS-202 .
В c может реализовывать SHAKE-128 и может вызывать main () как:
shake128(0,shake_key,&shake_context); //set key for shake
shake128(output_len, output_var, &shake_context) //hash function
Вместо создания дайджеста фиксированной длины (например, как MD5 / SHA-2/256), онможет производить выходные данные любой требуемой длины.