sql server - to_number - Guardar matriz de bytes en el servidor SQL
to_number sql server (3)
No sé qué edad tiene, pero recomendaría nvarchar (45) y Base64 sus 32 bytes en una cadena. Esta es la forma estándar de guardar un hash. Alternativamente, podría hacer nvarchar (64) y almacenarlo como una cadena hexadecimal.
Estoy tratando de usar un enfoque para guardar contraseñas que requiera usar una matriz de bytes como en esta post
Entonces, ¿qué tipo de datos debo usar en el servidor SQL para guardar la matriz de bytes? y ¿cómo puedo pasar y recuperar la matriz de bytes mediante SqlCommand?
Simplemente use un byte[]
la misma forma que lo haría con cualquier otro parámetro, especificando SqlDbType.Binary
como el tipo de parámetro. Aquí una muestra en C #
// Generate your password hash some way
byte[] passwordHash = new byte[] { 0x0, 0x1, 0x2 ... };
...
command.Parameters.Add("@passwordHash", SqlDbType.Binary);
command.Parameters["@passwordHash"].Value = passwordHash;
O si prefieres VB.NET
'' Generate your password hash some way
Dim passwordHash As Byte() = New Byte() { &H0, &H1, &H2 ... }
...
command.Parameters.Add("@passwordHash", SqlDbType.Binary)
command.Parameters("@passwordHash").Value = passwordHash
Si siempre va a tener la misma longitud, entonces sería adecuado el binary(length)
. Si va a variar en longitud, use varbinary(maxlength)
.
Y, como dice @pswg, lo pasa del código colocándolo en un parámetro adecuado.