插入VB.NET时,为什么我的密码没有加密

时间:2014-10-19 14:43:33

标签: vb.net encryption

我有这个简单的md5加密,但它似乎没有工作,当我检查我的数据库时,我输入的密码文本框中没有任何改变。

这是我的代码:

Dim strText As String = MetroTextBox6.Text
Dim bytHashedData As Byte()
Dim encoder As New UTF8Encoding()
Dim md5Hasher As New MD5CryptoServiceProvider

Using con = new MySqlConnection("server = localhost; user id = root; database = db; password = root")
Using cmd = con.CreateCommand()
con.Open()
Dim sqlQuery As String = "INSERT INTO candidate(uname,pword) VALUES("@votes, @pword")

With cmd
    .CommandText = sqlQuery
    .Parameters.AddWithValue("@uname", TextBox4.Text)
    .Parameters.AddWithValue("@pword, MetroTextBox6.Text)

    .ExecuteNonQuery()

 bytHashedData = md5Hasher.ComputeHash(encoder.GetBytes(strText))

End With
MsgBox("Record Inserted")
End Using

1 个答案:

答案 0 :(得分:2)

那是因为你没有使用你为任何东西创建的哈希。为字符串创建哈希代码并不会将字符串更改为哈希代码(即使它确实如此,您仍然会在将字符串发送到数据库之后执行此操作)。

在数据库调用之前计算哈希码,并创建要放入字符串的哈希码的字符串表示:

bytHashedData = md5Hasher.ComputeHash(encoder.GetBytes(strText))
strText = Convert.ToBase64String(bytHashedData)

然后使用带有哈希码的字符串而不是文本框中的字符串:

.Parameters.AddWithValue("@pword, strText)