この投稿のようにバイト配列を使用する必要があるパスワードを保存するアプローチを使用しようとしています
では、バイト配列を保存するためにSQLサーバーでどのデータ型を使用する必要がありますか?SqlCommandを使用してバイト配列を渡して取得するにはどうすればよいですか?
この投稿のようにバイト配列を使用する必要があるパスワードを保存するアプローチを使用しようとしています
では、バイト配列を保存するためにSQLサーバーでどのデータ型を使用する必要がありますか?SqlCommandを使用してバイト配列を渡して取得するにはどうすればよいですか?
byte[]
他のパラメーターと同じように使用しSqlDbType.Binary
、パラメーターの型として指定します。ここに 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;
または、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
nvarchar(45)
Base64 を使用して 32 バイトを文字列にすることをお勧めします。これは、ハッシュを保存する標準的な方法です。
nvarchar(64)
または、16 進文字列として保存することもできます。