Domanda

Nel mio ASP.NET web app sto hashing le mie password degli utenti con SHA512.

Nonostante le molte SO'ing e Googling io sono chiaro come io non li essere la memorizzazione nel database (SQL2005) - il codice qui sotto mostra le basi di come sto creando l'hash come una stringa e sto attualmente l'inserimento nel database in una colonna Char (88) come quella sembra essere la lunghezza creato costantemente

sta tenendo come una stringa il modo migliore per farlo, se così sarà sempre di 88 caratteri su uno SHA512 (come ho visto alcune cose bizzarre su 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))
È stato utile?

Soluzione

SHA512 emette 512 bit, o 64 byte. È possibile memorizzare quei 64 byte in una colonna binaria, qualora lo ritenesse opportuno.

Se si desidera gestire l'hash fuori della vostra applicazione è più comodo per memorizzare una stringa Base64, come si sta facendo ora. Base64 aggiunge circa un 33% di spese generali costanti, così ci si può aspettare la stringa di essere sempre 88 caratteri.

Detto questo, ASP.NET ha un abbastanza completo sistema di autenticazione incorporato, che si dovrebbe usare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top