여기에 성가신 문제가 있습니다.이 문제를 해결할 수 없습니다. 내 문제는 내 로그인을 확인할 수 없다는 것입니다. 어딘가에 논리적 인 오류가 있습니다. try-catch 블록이 '잡기'가 아니며, 심지어 데이터베이스 열기와 DB.Close 사이에 중단 점을 사용하여 문제가 있는지 확인하기 때문입니다. 다음은 몇 가지 화면입니다 : 그래서MySQL 데이터베이스가있는 VB.NET 로그인
내가 Gigel 사용자를 입력하면 자신의 비밀번호 123 (이 암호화되어있어) 내 IF에서 내 잘못된 실행을 얻을 수는
오류 ... 누구나 '뭔가 잘못 거기있어?'
Imports MySql.Data
Imports MySql.Data.MySqlClient
Imports System.Security.Cryptography
Public Class Form1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim MySQLConnection As New MySqlConnection("Server = localhost;Database = users; Uid=root; Pwd = password ")
Dim HashedPass As String = ""
'Converts the Password into bytes, computes the hash of those bytes, and then converts them into a Base64 string
Using MD5hash As MD5 = MD5.Create()
System.Convert.ToBase64String(MD5hash.ComputeHash(System.Text.Encoding.ASCII.GetBytes(TextBox2.Text)))
End Using
'Counter
Dim SqlQuery As String = "SELECT COUNT(*) From users1 WHERE username = @Username AND password = @Password; "
MySQLConnection.Open()
Dim Command As New MySqlCommand(SqlQuery, MySQLConnection)
'Sanitising parameters
Command.Parameters.Add(New MySqlParameter("@Username", TextBox1.Text))
Command.Parameters.Add(New MySqlParameter("@Password", HashedPass))
'checker
If Command.ExecuteScalar() = 1 Then
MsgBox("Thanks for logging in")
Me.Hide()
Else
MsgBox("Something's wrong down there")
End If
MySQLConnection.Close()
End Sub
End Class
'당신이 그렇게'Command.ExecuteScalar'이 반환합니다 매개 변수로 추가 할 때 HashedPass'가 비어'를 0 ' – equisde
나는 그것을 수정했지만 동일한 논리적 오류가 있습니다. 해시 섹션에 주석을 달고 매개 변수로 직접 TextBox2.text (암호를 입력하는 텍스트 상자)를 사용하면 전체 암호화 된 코드를 입력하여 작동합니다. 내 오류 어딘가에 해시 영역 주위에, 입력 해줘서 고마워, 그 해시 뭔가 = lol 함께 있어야합니다. – ExtremeSwat
중단 점을'If' 바로 위에 놓고'Command.CommandText'의 값을 확인하십시오. 그 값은 실행될 SQL 문입니다 – equisde