Estoy tratando de crear un sitio web con una función de inicio de sesión/cierre de sesión y planeo encargar y clasificar la contraseña correctamente. Sin embargo, el problema al que me estoy enfrentando es cómo almacenar la contraseña en la base de datos. Sé que necesito almacenar la contraseña hashed + salada en la base de datos (no en texto plano o cifrado simple), pero no sé cómo resolver técnicamente la inserción de datos binarios en la base de datos.¿Cómo puedo almacenar un hash en una base de datos de SQL Server usando C#?
En mis primeros intentos, la única forma de obtener datos en la base de datos era convertir los datos binarios en una cadena base64 e insertarlos en el campo de contraseña varchar
, pero algo me dice que esa no es la forma correcta para hacerlo.
El campo de la contraseña en la base de datos es actualmente un varchar
pero como yo lo entiendo, un hash de la contraseña es binario. Así que incluso si cambié el campo de contraseña a un objeto binario, todavía no sé cómo para insertarlo realmente!
Si no estoy haciendo ningún sentido favor pedir una aclaración y me pondré en contacto con usted.
El hash puede ser un varchar ... que no tiene que ser binarios en absoluto, sino por curiosidad ¿Cuál es la función ha que está utilizando? – hackartist
¿Por qué no quieres usar base64? Es simple y los datos son lo suficientemente pequeños como para no preocuparse por el tamaño. –
Base64 es la forma más segura que deja el hash en forma humana legible. No hay nada de malo en almacenar un hash salado como texto plano; ese es el propósito detrás de almacenar un hash, no una contraseña. – Douglas