Um algoritmo de hash criptográfico produz uma cadeia de caracteres de saída de comprimento fixo (geralmente chamada de resumo) a partir de uma cadeia de caracteres de entrada de comprimento variável. A entrada serve como texto simples, e o hash de saída é a cifra. Para todos os efeitos práticos, as seguintes afirmações são verdadeiras sobre uma boa função hash:
- Resistente a colisões: se qualquer parte dos dados for modificada, um hash diferente será gerado, garantindo a integridade dos dados.
- Unidirecional: a função é irreversível. Ou seja, dado um resumo, não é possível encontrar os dados que o produzem, garantindo a segurança de dados.
Por essas razões, os algoritmos de hash tornam os sistemas de criptografia eficazes porque esse algoritmo criptografa os dados diretamente, sem a necessidade de chaves diferentes. Em resumo, o texto simples é sua própria chave.
Considere a vulnerabilidade de segurança de um banco de dados de senhas de contas bancárias armazenadas. Qualquer pessoa com acesso autorizado ou não autorizado aos sistemas de computador do banco possivelmente poderia ler todas as senhas.
Para manter a segurança dos dados, os bancos e outras empresas criptografam informações confidenciais, como senhas, em um valor de hash e armazenam apenas esse valor criptografado em seu banco de dados. Sem saber a senha do usuário, o valor de hash não pode ser decodificado.