Save byte array in sql server
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)
.
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 waybyte[] 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 wayDim passwordHash As Byte() = New Byte() { &H0, &H1, &H2 ... }...command.Parameters.Add("@passwordHash", SqlDbType.Binary)command.Parameters("@passwordHash").Value = passwordHash
I'd recommend using 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.