2010-05-22 18 views

Respuesta

3

El flujo de trabajo típico implicaría generar un valor de sal y usarlo para cifrar la contraseña y luego almacenarla en la fila. Esto se documenta en detalle en muchos lugares y se puede buscar fácilmente.

Si realmente sólo quiere una manera rápida para discutir o cifrar sin sal echar un vistazo a FormsAuthentication.HashPasswordForStoringInConfigFile

+1

+1 por mencionar sal. Un hash sin sal es más vulnerable a las tablas de búsqueda del arco iris que al salado. – Tim

2

Si usted está preocupado por el envío de texto plano sobre el alambre, utiliza https. Entonces, ya sea que use https o no use un algoritmo hash de una manera como Sha256 para "cifrar" la contraseña y almacenarla en su base de datos (o en el almacenamiento persistente que esté utilizando). Cuando un usuario inicia sesión, use el mismo algoritmo para convertir el texto ingresado en el texto hash y compare el texto hash con el texto hash en su base de datos.

0

El mejor enfoque he encontrado (y la forma en cómo Facebook hace exactamente es)

cuando el usuario el tiempo entrar en el navegador, Javascript a cifrar en primer lugar, a continuación, enviar a la aplicación, cifrar con MVC, por último almacenar que, en su base de datos.

mientras que el usuario necesitará esa contraseña para iniciar sesión solo, cuando se olvidó. hacer algo así como restablecer la contraseña = D

http://forums.asp.net/t/1211478.aspx/1?How+do+I+use+Sha256+to+Encrypt+a+String+

1

La manera más fácil que he encontrado es el uso de la Membership Provider from ASP.NET. A continuación, puede configurarlo en su web.config como esto:

<system.web> 
    <membership> 
    <providers> 
     <clear /> 
     <add 
     name="AspNetSqlMembershipProvider" 
     (...) 
     passwordFormat="Hashed" 
     (...) /> 
    </providers> 
    </membership> 

Cuestiones relacionadas