Pregunta de entrevista para Desarrollador backend

¿Cómo deberían guardarse las contraseñas y qué señalarías en una revisión si vieras una implementación existente?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Aplica un hash con una función lenta y con uso intensivo de memoria: Argon2id es la recomendación actual, y bcrypt y scrypt son aceptables. Cada contraseña lleva su propia sal, que estos algoritmos generan y guardan en la salida, y los parámetros deben ajustarse para que el hash tarde una fracción apreciable de segundo en tu hardware. Nunca uses un hash rápido como SHA-256 o MD5, nunca cifres contraseñas de forma reversible, y rehashea al iniciar sesión cuando subas los parámetros.

Por qué lo preguntan los entrevistadores

Es una pregunta de seguridad factual con una respuesta correcta clara, así que filtra rápido. El entrevistador quiere Argon2id o bcrypt, sales por usuario y lentitud deliberada, más conciencia de los controles del entorno: límites de tasa, comprobación contra contraseñas filtradas y un flujo de restablecimiento seguro. Revisar una implementación existente también muestra si detectas los problemas sutiles, como que bcrypt trunca las entradas largas.

Cómo estructurar tu respuesta

  • Nombra el algoritmo y por qué importan la lentitud y el uso intensivo de memoria.
  • Cubre las sales y por qué una sal por usuario derrota a las tablas precalculadas.
  • Explica cómo eliges los parámetros y cómo los actualizas después.
  • Enumera los controles del entorno más allá del propio hash.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Argon2id es lo que uso, con bcrypt como alternativa si la librería de la plataforma está mejor soportada. La idea es que es deliberadamente lento y consume memoria, así que un atacante con el volcado no puede probar miles de millones de candidatas por segundo en una tarjeta gráfica. Cada contraseña lleva su propia sal aleatoria, que esos algoritmos incrustan en la salida codificada, así que contraseñas idénticas producen hashes distintos y las tablas precalculadas no sirven. Ajusto los parámetros contra hardware real, apuntando a unos cientos de milisegundos por hash, y los guardo junto al hash para poder subirlos después y rehashear de forma transparente la próxima vez que el usuario inicie sesión con éxito. En una revisión, lo que señalo es un SHA-256 o un MD5 a pelo, cualquier cosa reversible, una sal global única y, con bcrypt en concreto, el hecho de que ignora en silencio la entrada más allá de 72 bytes, lo que debilita sin avisar las frases de paso largas. Más allá del hash quiero límite de tasa en el login, una comprobación contra contraseñas ya filtradas y un flujo de restablecimiento con tokens de un solo uso que caducan.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Qué es un pepper y dónde lo guardarías?
  • ¿Cómo migras una tabla existente de contraseñas con hash débil?
  • ¿Cómo proteges el endpoint de login frente al relleno de credenciales?

Más preguntas para Desarrollador backend

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot