C# Security: ¿Cómo protejo una contraseña de usuario? [duplicar]

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

preguntado el 12 de junio de 12 a las 11:06

¿Y no encontraste ninguna publicación relacionada con esto en SO? Como esto stackoverflow.com/questions/6563269/… -

¿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? -

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. -

Esto 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/…. -

4 Respuestas

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

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

Puede asegurar una contraseña por haciéndolo

Respondido el 12 de junio de 12 a las 11:06

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 or haz tu propia pregunta.