web-dev-qa-db-fra.com

Enregistrer le tableau d'octets dans le serveur SQL

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?

18
user2155873

S'il doit toujours avoir la même longueur, alors binary(length) conviendra. Si sa longueur varie, utilisez varbinary(maxlength).

binary et varbinary .

Et, comme @ p.s.w.g dit, vous le passez du code en le plaçant dans un paramètre approprié.

23

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
4
p.s.w.g

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.

0
Andrew Hoffman