Hash é o resultado de uma função que transforma qualquer dado em uma sequência de tamanho fixo, funcionando como uma impressão digital daquele conteúdo. A mesma entrada gera sempre o mesmo hash, mas a operação é de mão única: não dá para voltar do hash ao dado original.
Hash não é criptografia
Hash e criptografia resolvem problemas diferentes. A criptografia é reversível: com a chave certa, o texto cifrado volta ao original. O hash é de mão única, feito para comparar e verificar integridade, não para recuperar o conteúdo. Por isso hashes são usados para conferir se um arquivo foi baixado sem corromper, para indexar dados e para checar senhas sem armazená-las em texto puro. Codificações como Base64 também não são criptografia, apenas outro jeito de representar os dados.
Por que MD5 e SHA-1 não servem para senhas
MD5 e SHA-1 são hashes rápidos e hoje considerados fracos: existem colisões conhecidas e um atacante consegue testar bilhões de tentativas por segundo. Para senhas, o recomendado são funções lentas e com sal, como bcrypt, scrypt ou Argon2, feitas justamente para dificultar a força bruta. MD5 e SHA-1 ainda têm uso legítimo para checar integridade de arquivos, mas não para proteger credenciais.
