Construção Davies–Meyer
Uma forma de construir o passo de compressão de uma função hash a partir de uma cifra de bloco.
O bloco da mensagem serve de chave para a cifra de bloco, o valor de encadeamento anterior serve de texto claro, e a saída passa por um XOR com esse mesmo valor anterior. Esse XOR final, o feed-forward, é o que impede a construção de ser apenas uma permutação da cifra, e esse é justamente o ponto.
Por que não usar a cifra de bloco diretamente? Porque o tamanho de um hash fica, na prática, limitado pelo tamanho do bloco. Uma cifra com blocos de 64 bits gera um hash curto demais para resistir a ataques de colisão, mesmo com um poder computacional modesto.