Ferramentas para desenvolvedores · SHA calculadora de hash
Hashing não é criptografia: por que um hash SHA-256 não pode ser descriptografado
· Por que é importante
criptografia segurança codificação
Não há chave nem inverso: um hash é uma função unidirecional. Esta postagem explica a diferença da criptografia, por que os sites de pesquisa de hash parecem reverter os hashes e o que isso significa para o hash de dados pessoais.
Por favor, descriptografe esses hashes – o ticket que revela um mal-entendido sobre o que é hash
Chega um ticket de suporte solicitando a descriptografia de alguns hashes SHA-256. O desenvolvedor que está lendo suspeita de um mal-entendido sobre o que é hash. A confusão faz sentido – tanto o hash quanto a criptografia envolvem algoritmos criptográficos, ambos produzem resultados que parecem embaralhados e ambos são relevantes para a segurança. Mas são ferramentas fundamentalmente diferentes. A criptografia é reversível; hash não é. Esta distinção é suficientemente importante para que confundi-los tenha quebrado os verdadeiros sistemas de segurança. O ticket representa uma lacuna comum no entendimento que afeta o design do sistema.
Uma função hash é uma função unilateral. Você pode fazer hash de uma entrada para obter um resumo, mas não há chave nem operação inversa que recupere a entrada do resumo. Isto não é uma limitação ou um bug; é a propriedade definidora de um hash. A calculadora de hash ToolAcre SHA produz resumos do texto que você cola e não há botão "descriptografar" porque nenhum botão poderia existir. A operação é irreversível pela matemática, não por escolha. A ausência de função reversa não é um recurso que você pode solicitar.
A criptografia tem uma chave e uma inversa; hashing não tem nenhum dos dois - a diferença de definição em termos simples
A criptografia funciona de maneira diferente. Um algoritmo de criptografia pega texto simples e uma chave e produz texto cifrado. O texto cifrado fica embaralhado e ilegível sem a chave. Crucialmente, a mesma chave pode descriptografar o texto cifrado de volta ao texto simples. A criptografia é reversível por design. Você criptografa para manter os dados em segredo; você descriptografa para lê-lo novamente. A segurança da criptografia depende do segredo da chave. Somente o detentor da chave pode reverter a transformação.
Hashing não tem chave nem reversão. Você faz hash de algo para produzir um resumo de comprimento fixo. A mesma entrada sempre produz o mesmo resumo. Uma entrada diferente produz um resumo diferente – essa é a propriedade de resistência à colisão. Mas você não pode fazer um resumo e produzir um input. A função só funciona em um sentido. Se você precisar criptografar dados para poder descriptografá-los mais tarde, o hash é a ferramenta errada. Se você precisar de uma impressão digital de dados para verificação ou endereçamento de conteúdo, o hash está correto. Escolher a ferramenta certa requer compreender a diferença.
Como funcionam os sites de pesquisa de hash – dicionários pré-computados de entradas comuns, não descriptografia
Esta distinção é tão importante que está subjacente à segurança da verificação de senha. Um servidor não armazena senhas. Ele armazena o resultado do hash da senha. Quando um usuário faz login, o servidor faz o hash de seu envio e o compara com o valor armazenado. Se o servidor for comprometido e seu banco de dados for roubado, o invasor não obtém as senhas, apenas os hashes. A natureza unidirecional do hash significa que o invasor não pode fazer engenharia reversa das senhas dos hashes. A segurança do sistema depende desta propriedade.
Se o servidor usasse criptografia – se criptografasse senhas e pudesse descriptografá-las – então um comprometimento que roubasse a chave exporia imediatamente todas as senhas. O hash é escolhido especificamente porque é irreversível. É por isso que os sistemas de senha usam hashing, não criptografia. A irreversibilidade não é uma limitação; é todo o modelo de segurança. Um banco de dados de senhas criptografadas é fundamentalmente mais fraco do que um banco de dados com hash porque a criptografia é reversível.
Entradas de baixa entropia são o ponto fraco – por que fazer hash de um endereço de e-mail, número de telefone ou PIN abreviado oferece pouca proteção
Existem sites de pesquisa de hash para criar a ilusão de descriptografia. Esses sites hospedam tabelas pré-computadas de entradas comuns e seus hashes. "Tabelas Rainbow" são dicionários pré-preparados: uma tabela pode conter os hashes das mil senhas mais comuns, ou todas as combinações alfanuméricas até um determinado comprimento, ou listas inteiras de palavras em vários idiomas. O operador do site já fez o trabalho de hash e armazenou os resultados. Quando alguém envia um hash para um site de pesquisa, o site não descriptografa nada. Ele simplesmente procura o hash em sua tabela. Se o hash estiver lá – se alguma palavra do dicionário ou padrão de senha corresponder – a tabela retornará a entrada original. Isso parece uma descriptografia mágica para alguém não familiarizado com a técnica, mas é apenas uma pesquisa no banco de dados. O site não está revertendo o hash; está comparando-o com valores pré-computados.
Exemplo resolvido - hash de um valor adivinhável e mostrando como um dicionário o recuperaria, em comparação com um valor aleatório longo que não poderia
É por isso que os insumos de baixa entropia são vulneráveis. Se você fizer hash de uma senha comum como "senha" ou de um valor previsível como o endereço de e-mail de alguém, há uma chance razoável de um site de pesquisa já ter calculado esse hash e armazenado. A pesquisa retorna o valor original instantaneamente. Se você fizer o hash de uma string aleatória de 256 caracteres, nenhum site de pesquisa no mundo terá esse hash específico pré-computado. O site de pesquisa não retorna nada porque a entrada não estava no dicionário. A segurança do hash depende inteiramente da entropia da entrada.
A calculadora de hash ToolAcre SHA demonstra isso diretamente. Faça hash de uma palavra comum e um invasor determinado poderá procurá-la se executar seu próprio serviço de dicionário. Hash um valor aleatório longo, e mesmo um dicionário enorme dificilmente o conteria. O determinismo do hashing – entradas idênticas fornecem saídas idênticas – é o que torna possíveis os ataques de dicionário. É também o que torna os hashes úteis para verificação. A mesma propriedade que permite a pesquisa também permite a verificação.
Quando você realmente deseja criptografia – os casos em que os dados devem voltar e onde um hash é a ferramenta errada
Quando você realmente deseja criptografia – quando precisa enviar dados secretos e recuperá-los mais tarde – uma cifra é a ferramenta certa. AES é o padrão moderno para criptografia simétrica: uma chave é compartilhada e criptografa o texto simples e descriptografa o texto cifrado. RSA ou criptografia de curva elíptica são usadas para criptografia assimétrica: uma chave pública criptografa e uma chave privada descriptografa. Essas ferramentas são reversíveis por design. A segurança vem do sigilo da chave, não da irreversibilidade. O erro é usar hash onde a criptografia é necessária. Se você fizer hash de um número de cartão de crédito com a intenção de verificá-lo mais tarde, não terá como descriptografá-lo. Se você fizer hash de um identificador pessoal e posteriormente precisar recuperá-lo, o hash foi a escolha errada. São situações que exigem criptografia.
Um exemplo prático separa claramente os dois usos. Você tem uma lista de IDs de usuário que devem ser mantidos em segredo uns dos outros e de sua própria equipe. Você os criptografa com AES e armazena o resultado. Mais tarde, quando precisar procurar um usuário, você o descriptografa e lê. Hashing não funcionaria; uma vez hash, os IDs são perdidos para sempre. Por outro lado, você tem senhas de usuário. Você os hash e armazena o hash. Quando um usuário faz login, você faz o hash do envio e compara com o valor armazenado. Você nunca precisa recuperar as senhas. A criptografia seria errada; você não precisa de senhas em texto simples após a configuração inicial.
O que isso não cobre – designs de hash com chave e salgado, que elevam o padrão, mas são um tópico separado
Salting e hashing com chave merecem tratamento separado porque nenhum deles transforma um resumo em criptografia. Um sal faz com que entradas iguais de baixa entropia produzam registros armazenados diferentes, e uma chave pode restringir quem calcula um valor de autenticação válido. A saída permanece irreversível; as tentativas de recuperação ainda procedem testando entradas candidatas em vez de aplicar um inverso.
O hash de senha adiciona custo deliberado e também sal, enquanto HMAC autentica mensagens com uma chave secreta. ToolAcre não implementa nenhuma operação. Mantê-los fora deste artigo evita o atalho perigoso de descrever SHA-256 simples mais um prefixo improvisado como equivalente a um registro de senha revisado ou construção de autenticação de mensagem.
Conclusão: apenas uma via – a calculadora de hash ToolAcre SHA calcula resumos; não há botão reverso porque nenhum pode existir
A calculadora de hash ToolAcre SHA mostra o hash em ação: cole texto, faça um resumo, pronto. Nenhuma reversão é possível ou pretendida. A ferramenta se recusa corretamente a fornecer uma função de “descriptografia”, porque ela não pode existir. Se você precisar de criptografia, use uma cifra adequada. A ausência de reversão não é uma limitação da ferramenta; é um fato matemático sobre hash. As funções unilaterais são ferramentas poderosas precisamente porque não podem ser revertidas. Eles comprometem os dados de uma forma que não pode ser recuperada. Eles fornecem verificação sem revelar o original. Eles permitem sistemas de senha seguros mesmo se o banco de dados for roubado. Hashes de senha salgados e com custo adequado tornam-se inviáveis para serem revertidos por meio de adivinhação. A irreversibilidade é o mecanismo de segurança.
A calculadora de hash ToolAcre SHA calcula resumos unidirecionais, intencionais e computados adequadamente pela implementação do Web Crypto do próprio navegador. Se você precisar fazer hash para verificação ou integridade, use-o. Se você precisa manter os dados em segredo e recuperá-los mais tarde, a criptografia é a sua ferramenta. Compreender a diferença entre hashing irreversível e criptografia reversível é fundamental para a segurança e para a construção de sistemas que façam o que você realmente precisa.