Pregunta

En mi aplicación web ASP.NET Estoy hash mis contraseñas de usuario con SHA512.

A pesar de mucha SO'ing y googlear estoy claro cómo debería de ellos almacenando en la base de datos (SQL2005) - el código de abajo muestra los fundamentos de cómo estoy creando el hash como una cadena y actualmente estoy insertando en la base de datos en una (88) de columna Char como que parece ser la longitud creado consistentemente

lo sostiene como una cadena la mejor manera de hacerlo, si así será siempre 88 caracteres en una SHA512 (como he visto algunas cosas extrañas en Google)?

 Dim byteInput As Byte() = Encoding.UTF8.GetBytes(sSalt & sInput)
 Dim hash As HashAlgorithm = New SHA512Managed()
 Dim sInsertToDatabase As String =  Convert.ToBase64String(hash.ComputeHash(byteInput))
¿Fue útil?

Solución

SHA512 da salida a 512 bits, o 64 bytes. Puede almacenar esos 64 bytes de una columna binaria, si así lo deseaban.

Si desea manejar el hash fuera de su aplicación es más cómodo para almacenar una cadena de base 64, como lo están haciendo ahora. Base64 añade más o menos un 33% de sobrecarga constante, por lo que puede esperar de la cadena para estar siempre 88 caracteres.

Dicho esto, ASP.NET tiene una bastante completo sistema de autenticación orden interna, que se debe utilizar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top