Je cherche à utiliser une approche dans la sauvegarde des mots de passe qui nécessite l'utilisation d'octets tableau comme dans ce post
Alors, quel type de données dois-je utiliser dans SQL Server pour sauvegarder tableau d'octets? et comment puis-je passer et récupérer le tableau d'octets en utilisant SqlCommand?
S'il doit toujours avoir la même longueur, alors binary(length)
conviendra. Si sa longueur varie, utilisez varbinary(maxlength)
.
Et, comme @ p.s.w.g dit, vous le passez du code en le plaçant dans un paramètre approprié.
Utilisez simplement un byte[]
de la même manière que n'importe quel autre paramètre, en spécifiant SqlDbType.Binary
comme type de paramètre. Voici un échantillon 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;
Ou si vous préférez 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
Je ne sais pas quel âge cela a, mais je recommanderais nvarchar (45) et Base64 vos 32 octets dans une chaîne. C'est le moyen standard de sauvegarder un hachage ..__ Sinon, vous pouvez utiliser nvarchar (64) et le stocker en tant que chaîne hexadécimale.