Question

Dans mon application web ASP.NET Je hachant mes mots de passe de l'utilisateur avec SHA512.

En dépit de beaucoup SO'ing et recherche sur Google, je suis pas clair comment je devrais les stocker dans la base de données (SQL 2005) - le code ci-dessous montre les bases de la façon dont je crée le hachage comme une chaîne et j'insérer actuellement dans la base de données dans une colonne comme cela semble être la longueur Char (88) crée toujours

Tient comme une chaîne la meilleure façon de le faire, s'il en sera toujours 88 caractères sur un SHA512 (comme je l'ai vu des trucs bizarres sur Google)?

 Dim byteInput As Byte() = Encoding.UTF8.GetBytes(sSalt & sInput)
 Dim hash As HashAlgorithm = New SHA512Managed()
 Dim sInsertToDatabase As String =  Convert.ToBase64String(hash.ComputeHash(byteInput))
Était-ce utile?

La solution

SHA512 délivre en sortie 512 bits, soit 64 octets. Vous pouvez stocker ces 64 octets dans une colonne binaire, si vous le désiriez.

Si vous voulez gérer le hachage en dehors de votre application est plus confortable pour stocker une chaîne base64, comme vous le faites maintenant. Base64 ajoute environ 33% des frais généraux constant, donc vous pouvez vous attendre la chaîne à toujours 88 caractères.

Cela dit, ASP.NET a un système d'authentification assez complet builtin, que vous devriez utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top