Am looking to use an approach in saving passwords that requires using byte array as in this post
So which data type should i use in sql server to save byte array? and how can i pass and retrieve the byte array using SqlCommand?
Am looking to use an approach in saving passwords that requires using byte array as in this post
So which data type should i use in sql server to save byte array? and how can i pass and retrieve the byte array using SqlCommand?
If it's always going to be the same length, then binary(length)
would be suitable. If it's going to vary in length, use varbinary(maxlength)
.
binary and varbinary.
And, as @p.s.w.g says, you pass it from code by placing it into a suitable parameter.
Just use a byte[]
the same way you would any other parameter, specifying SqlDbType.Binary
as the parameter type. Here a sample in 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;
Or if you prefer 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
Don't know how old this is, but I'd recommend nvarchar(45) and Base64 your 32 bytes into a string. This is the standard way of saving a hash. Alternatively you could do nvarchar(64) and store it as a hex string.