gpt4 book ai didi

sql - 使用 Access 存储用户名和密码并通过 Visual Basic 打开

转载 作者:行者123 更新时间:2023-12-04 06:15:45 25 4
gpt4 key购买 nike

基本上,我正在尝试创建一个需要获得授权的程序。

当应用程序启动时,它会直接进入登录屏幕。

我希望用户名和密码文本框读取数据库,如果它们匹配,则进入下一个表单,但如果它们不匹配,则会出现一个消息框。

我还想创建一群人,所以如果某一群人登录,他们会转到某个表格,如果另一群人登录,我希望他们转到不同的表格。

另外我希望密码框是 * 而不是可见文本。

任何人都可以帮忙,这是我到目前为止的代码......

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "数据源 = D:/Users.mdb"

    con.ConnectionString = dbProvider & dbSource

con.Open()


sql = "SELECT * FROM tblUsers"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "Users")

con.Close()

MaxRows = ds.Tables("Users").Rows.Count
inc = -1


If UserIDTextBox.Text = ds.Tables("tblUsers").Rows(0).Item("UserID") & User_PasswordTextBox.Text = ds.Tables("tblUsers").Rows(0).Item("Password") Then
MsgBox("This have worked correctly!")
Else
MsgBox("This has not worked, try again!")
End If

最佳答案

您需要知道的第一件事也是最重要的事情是,编写自己的身份验证系统几乎总是一个坏主意。以看似正确的方式做到这一点非常容易,甚至通过了所有的测试,但仍然有微妙的、难以发现的错误,直到一年后当你发现自己在六个月前被破解时才会出现.始终尽可能地依赖平台中提供给您的任何身份验证功能。

接下来您需要知道的是,您不会在数据库中存储密码。曾经。处理密码匹配的正确方法是使用 salt 以某种简单的方式更改原始密码,这样简单的字典密码现在将不再导致可以通过 google 查找轻松反转的值,然后使用加密散列算法,如 bcrypt、scrypt 或(如果您真的需要)sha1。不要使用 md5。这方面的例子很容易在谷歌上找到,并且会比我在这里解释得更好。当有人想要登录时,您对他们尝试的密码执行相同的步骤,现在只比较哈希值。如果您不这样做,那么您的用户密码成为公众所知只是时间问题。

接下来,我注意到您的代码中的数据库连接处理存在问题。您拥有的代码不能保证关闭连接。 con.Close()应该总是在 finally 块中,并且我更喜欢 Using块速记。

最后,在接近底部的地方,您尝试使用 VB 的字符串连接运算符 ( & ) 作为逻辑 AND .哎呀。您想使用 AndAlso运营商在这里代替。

关于sql - 使用 Access 存储用户名和密码并通过 Visual Basic 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com