Stockage d'un hachage de mot de passe SHA512 dans la database

Dans mon application Web ASP.NET, je hache mes passwords user avec SHA512.

Malgré beaucoup SO'ing et googling je ne sais pas comment je devrais les stocker dans la database (SQL2005) – le code ci-dessous montre les bases de la façon dont je crée le hachage comme une string et je suis en train de l'insert dans le database dans une colonne Char (88) comme cela semble être la longueur créée de manière cohérente

Est-ce que le fait de le tenir comme une string est la meilleure façon de le faire, si oui, ce 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 Ssortingng = Convert.ToBase64Ssortingng(hash.ComputeHash(byteInput)) 

SHA512 génère 512 bits ou 64 octets. Vous pouvez stocker ces 64 octets dans une colonne binary, si vous le souhaitez.

Si vous voulez gérer le hachage en dehors de votre application, il est plus confortable de stocker une string Base64, comme vous le faites actuellement. Base64 ajoute environ 33% de time système constant, donc vous pouvez vous attendre à ce que la string soit toujours composée de 88 caractères.

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