Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
¿La mejor manera de almacenar contraseñas?

Estoy tratando de estudiar cómo almacenar usuarios de forma segura (nombre de usuario y contraseña) en mi base de datos.

Por lo que he recopilado en mi investigación, la forma más segura de almacenar una contraseña es:

  • generar sal
  • Concat Sal en la contraseña
  • Hash el resultado concatenado en SHA-256
  • Iterarlo (deberían ser 640.000 iteraciones si lo hice bien, pero no estoy seguro)

Encontré la clase Rfc2898DeriveBytes que me permite hacer eso, pero ahora no estoy seguro de cómo almacenar todos los datos en mi base de datos, mi pregunta es ¿cómo voy a iniciar sesión si la contraseña cifrada siempre es diferente?

Rfc2898DeriveBytes genera una clave, pero estoy bastante seguro de que no debo guardar la clave en la base de datos, no sé qué hacer :(

Por ahora esto es lo que escribí/reuní:

 public static byte[] GetSalt(int maximumLenght) { byte[] salt = new byte[maximumLenght]; using (var random = new RNGCryptoServiceProvider()) { random.GetNonZeroBytes(salt); } return salt; } public byte[] GenerateSaltedHash(byte[] password, byte[] salt) { byte[] concatenatedSalt = new byte[salt.Length + password.Length]; concatenatedSalt = salt.Concat(password).ToArray(); return settings.HashAlgorithmType.ComputeHash(concatenatedSalt); } public static byte[] HashPassword(byte[] password, byte[] salt, int iterations) { using (var rfc2898 = new Rfc2898DeriveBytes(password, salt, iterations)) { //dunno to do with that return rfc2898.GetBytes(32); } }

¿Debo almacenar el recuento de iteraciones, la sal y el hash? ¿Es seguro hacer eso?

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda