C# Security: ¿Cómo protejo una contraseña de usuario? [duplicar]
Frecuentes
Visto 5,467 veces
0
Posible duplicado:
La mejor manera de almacenar la contraseña en la base de datos
¿Alguien sabe una forma de asegurar una contraseña que el usuario está creando en el sitio que luego se guarda en una tabla de base de datos?
Las contraseñas se almacenan actualmente como texto sin formato, lo sé... ¡lo sé!
Muchas Gracias
4 Respuestas
2
La respuesta estándar es la siguiente: no almacene las contraseñas en texto sin cifrar. Almacenar versiones hash de contraseñas. Cuando hash contraseñas, elige el algoritmo hash apropiado y usa también valores de sal únicos. http://www.troyhunt.com/2011/06/owasp-top-10-for-net-developers-part-7.html
También POR FAVOR lea esto. http://krebsonsecurity.com/2012/06/how-companies-can-beef-up-password-security/
Algunos algoritmos hash son demasiado rápidos (o demasiado fáciles de descifrar con la potencia informática moderna). Use algoritmos de hashing de contraseñas (como scrypt).
Respondido el 12 de junio de 12 a las 11:06
1
Sal la contraseña usando un salt por registro (es decir, todos los usuarios usan un salt diferente basado en alguna parte de la información del usuario). Luego tome esta contraseña salada y haga un hash usando algún algoritmo hash como un hash SHA.
Ver por ejemplo Contraseñas hash y salt en C #
contestado el 23 de mayo de 17 a las 13:05
0
Puede asegurar una contraseña por haciéndolo
Respondido el 12 de junio de 12 a las 11:06
0
Puedes hash usando md5 cifrar.
Respondido el 12 de junio de 12 a las 11:06
No, el hash MD5 (sin cifrar) es una mala idea en estos días. SHA-1 también es una mala idea. - DmitryK
Muy confuso cuando tienes hash y encriptas en una línea - V4Vendetta
MD5 (o cualquier algoritmo que sea computacionalmente trivial) es una mala elección para codificar contraseñas. Al momento de escribir, PBKDF2 con al menos 10,000 interacciones es una buena opción. Implementado en el Marco por Rfc2898DeriveBytes. - Stevieg
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# security password-encryption or haz tu propia pregunta.
¿Y no encontraste ninguna publicación relacionada con esto en SO? Como esto stackoverflow.com/questions/6563269/… - V4Vendetta
stackoverflow.com/questions/1054022/… - David Brabant
¿Es esta una contraseña que solo se usa para iniciar sesión en el sitio o se usa para realizar alguna acción en nombre del usuario? - Gabe
No almacena la contraseña en la base de datos, almacena un hash seguro de la contraseña para que pueda autenticar el conocimiento de la contraseña por parte de los usuarios. La definición de
secure hash
cambia dependiendo de cuándo leas este comentario. - JodrellEsto realmente depende del escenario. ¿Está bien enviar la contraseña de texto claro del cliente al servidor? Si no, tendría que cifrarlo en javascript o similares. De lo contrario, puede usar uno de los diversos algoritmos para cifrarlo en el servidor y solo almacenar el hash como se describe aquí [stackoverflow.com/questions/2138429/…. - Franky