Pergunta de entrevista para Desenvolvedor Backend

Como as senhas devem ser armazenadas, e o que você apontaria numa revisão se visse uma implementação existente?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Faça hash com uma função lenta e intensiva em memória: Argon2id é a recomendação atual, com bcrypt e scrypt aceitáveis. Cada senha recebe um salt único, que esses algoritmos geram e guardam na saída, e os parâmetros devem ser ajustados para que o hash leve uma fração perceptível de segundo no seu hardware. Nunca use um hash rápido simples como SHA-256 ou MD5, nunca criptografe senhas de forma reversível, e refaça o hash no login quando você aumentar os parâmetros.

Por que os entrevistadores perguntam isso

É uma pergunta factual de segurança com uma resposta certa clara, então ela filtra rápido. O entrevistador quer Argon2id ou bcrypt, salts por usuário e lentidão deliberada, mais consciência dos controles ao redor: limitação de taxa, checagem contra senhas vazadas e um fluxo de redefinição seguro. Revisar uma implementação existente também mostra se você identifica os problemas sutis, como o bcrypt truncando entradas longas.

Como estruturar sua resposta

  • Nomeie o algoritmo e por que lentidão e uso intensivo de memória importam.
  • Cubra os salts e por que um salt por usuário derrota tabelas pré-computadas.
  • Diga como você escolhe os parâmetros e como os atualiza depois.
  • Liste os controles ao redor, além do hash em si.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Argon2id é o que eu escolho, com bcrypt como alternativa se a biblioteca da plataforma tiver suporte melhor. O ponto é que ele é deliberadamente lento e intensivo em memória, então um atacante com o dump não consegue testar bilhões de candidatos por segundo numa placa de vídeo. Cada senha recebe o próprio salt aleatório, que esses algoritmos embutem na saída codificada, então senhas idênticas produzem hashes diferentes e tabelas pré-computadas ficam inúteis. Eu ajusto os parâmetros contra hardware real, mirando algumas centenas de milissegundos por hash, e guardo esses parâmetros junto com o hash para poder aumentá-los depois e refazer o hash de forma transparente no próximo login bem-sucedido. Numa revisão, o que eu aponto é um SHA-256 ou MD5 puro, qualquer coisa reversível, um salt global único e, no caso do bcrypt especificamente, o fato de ele ignorar em silêncio a entrada além de 72 bytes, o que enfraquece discretamente frases longas. Além do hash, eu quero limitação de taxa no login, uma checagem contra senhas sabidamente vazadas e um fluxo de redefinição com tokens de uso único e expiração.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • O que é um pepper, e onde você o guardaria?
  • Como você migra uma tabela existente de senhas com hash fraco?
  • Como você protege o endpoint de login contra credential stuffing?

Mais perguntas para Desenvolvedor Backend

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot