Função hash é usada para resolver o princípio da criptografia, garantindo que a mensagem não foi alterada durante a transmissão. Mesmo que alguém modifique uma pequena parte (uma letra) dos dados de entrada, o hash mudará drasticamente.
Message Digest (MD) - A função MD5 tem 128bits, foi criada em 1991 e foi muito utilizada no mundo de software para garantir a integridade de arquivos. Por exemplo, um servidor pode prover um valor hash MD5 de um arquivo já pré-calculado para o usuário possa comparar quando tiver realizado o download dele. Em 2004 foram achadas vulnerabilidades nesse algoritmo e ele não é mais recomendado.
Secure Hash Function (SHA) - SHA-3 tem versões de até 512bits de saída, ou seja, tem tamanho variável nas saídas (de 224 a 512bits). O SHA-3 veio para substituir seus antecessores (SHA-1 e SHA-2) e foi declarado o vencedor em 2012.
Portanto, a função SHA não foi substituída e sim substituiu e a função MD5
Dica pra quem não conhece do assunto: quanto maior o número de bits, mais segura será a criptografia
fonte: meu resumo tirado de vários locais