Save byte array in sql server

前端 未结 3 2034
滥情空心
滥情空心 2020-12-11 00:34

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? an

相关标签:
3条回答
  • 2020-12-11 01:28

    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
    
    0 讨论(0)
  • 2020-12-11 01:30

    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.

    0 讨论(0)
  • 2020-12-11 01:32

    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.

    0 讨论(0)
提交回复
热议问题