1
我繼承了一個我需要支持的程序,並且我被告知使用SHA1哈希將密碼存儲在MSSQL數據庫中。當我嘗試從數據庫中讀取數據時,我只能看到「System.Byte []」。vb.net,我如何驗證SHA1哈希密碼?
程序會要求用戶輸入密碼,我能夠用下面創建一個SHA1哈希:
Public Function GetSHA1HashData(data As String) As String
Dim cBase64 As String
Dim objSHA1 As New SHA1CryptoServiceProvider()
Dim abBytesToHash() As Byte
Dim cHash As String
cBase64 = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(data))
abBytesToHash = System.Text.Encoding.ASCII.GetBytes(cBase64)
cHash = BitConverter.ToString(objSHA1.ComputeHash(abBytesToHash))
cHash = Replace(cHash, "-", "")
Return cHash
End Function
所以我的問題是,如何比較新創建的哈希與價值,我拉出數據庫以查看它們是否相同?我需要做什麼「System.Byte []」把它變成我能讀的東西?
謝謝。
您是否在使用.ToString或類似的東西從數據庫中拉出來時?如果是這樣,那可以解釋爲什麼你得到的是價值的類型,而不是實際的價值。如果以字節的形式存儲在數據庫中,則可能需要通過其他方法將其轉換爲字符串。 –
是的,我正在使用MessageBox.Show(value.toString())來獲取System.Byte []消息,但這只是試圖看看那裏有什麼。 – user2018388