所以我尝试使用通过文本框输入的用户名和存储为字符串的密码来搜索我的数据库(用户将其密码输入到文本框中,并对其进行一些操作以进行加密,加密密码然后存储为字符串;这个字符串是我用来搜索数据库的,因为数据库中存有加密密码)
该命令适用于通过文本框输入的用户名字符串,但是当我直接使用派生密码字符串时,它不起作用。我认为以下代码行中的语法错误会给您带来麻烦:
Dim cmd As OleDbCommand = New OleDbCommand
("SELECT * FROM UserInfo
WHERE [User ID] = '" & txtLoginID.Text & "'
AND [EncryptedPassword] = '" & EncPasswordString & "' ", con)
EncPasswordString是存储通过各种操作获取的加密密码的字符串。我需要将此字符串与数据库中的EncryptedPassword进行比较。谢谢!
这是我用来获取EncPasswordSting的内容:
i = 0
While (PLength > 0)
charofP = sHex(i)
ascvalue = Strings.Asc(chartest)
decvalue = Convert.ToDecimal(ascvalue)
shiftdecvalue = decvalue + 1
asctochar = ChrW(shiftdecvalue)
emptychararray(i) = asc
i = i + 1
PLength = PLength - 1
End While
EncPasswordString = Convert.ToString(emptychararray)
答案 0 :(得分:0)
背景它根本不起作用。正如你所说,密码是加密的。用你的话说(“但是当我直接使用派生的密码字符串时,它不起作用。”)你有两个选项可以验证并使它工作:
Encrypt
输入密码并与DB中的密码进行比较。Decrypt
密码并与输入密码进行比较。请在调试时分享您的SQL command text
。