应用程序不比较MySQL数据库上的登录数据?

奥西里斯93

我创建了一个登录框架,用户必须在其中输入用户名或密码。用户凭证以加密格式(AES)存储在MySQL数据库中。用于当所述存取按钮被按下测试目的的帧取入输入的数据txtUsernametxtPassword,进行加密并设定在所述加密凭证txtEncUNametxtEncPword然后,应用程序将比较加密的凭据txtEncUName和和txtEncPword文本字段中的加密数据

如果凭据正确,则根据用户是否具有管理员访问权限,向用户授予访问权限并将其定向到相应页面。如果他们的帐户已被锁定,则jLabel将通知他们,并且不会授予访问权限。当我较早测试时,它工作得很好,但是现在这是我的问题:

当我尝试登录时,应用程序立即显示该帐户不可访问。我已经检查了凭据,它们是正确的。没有错误出现,堆栈跟踪也没有出现。

我该怎么做才能正确检查凭据?

这是用于访问按钮的方法:

public void loginMethod()
{
String user = txtUsername.getText();
        String pwd = new String(txtPassword.getPassword());

        try
        {
            String enc1 = LoginFrame.encrypt(user);
            String enc2 = LoginFrame.encrypt(pwd);

            encUname.setText(enc1);
            encPword.setText(enc2);

            String aes1 = encUname.getText();
            String aes2 = encPword.getText();

            String getAccess = "select * from login_db";            

            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = (Connection)
            DriverManager.getConnection("jdbc:mysql://localhost:3306/user_db","root","password");
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(getAccess);

            if(rs.next())
            {
                String username = rs.getString("emp_num");
                String password = rs.getString("pword");
                String access = rs.getString("adminAccess");
                String locked = rs.getString("accLocked");

                if((aes1.equals(username)) && (aes2.equals(password)) && (access.equals("Yes"))&& ("No".equals(locked)))
                {
                    AdminPage ap = new AdminPage();
                    ap.setVisible(true);
                    this.dispose();
                }

                else if ((aes1.equals(username)) && (aes2.equals(password)) && (access.equals("No"))&& ("No".equals(locked)))
                {
                    EmployeeMainPage emp = new EmployeeMainPage();
                    emp.setVisible(true);
                    this.dispose();
                }

                else if((aes1.equals(username)) && (aes2.equals(password)) && (access.equals("Yes"))&& ("Yes".equals(locked)))
                {
                    lblWrongLogin.setVisible(true);
                    lblWrongLogin.setText("Account inaccesible, please contact admin for support.");
                }
                else if((locked.equals("Yes")))
                {
                    lblWrongLogin.setVisible(true);
                    lblWrongLogin.setText("Account inaccessible, please contact admin for support.");
                }
        }
        }

        catch (Exception e)
        {
            JOptionPane.showMessageDialog(this, e);
        }
    }
}
科佩格
String getAccess = "select * from login_db";    

上面的查询从数据库中选择所有行,但是代码...

if(rs.next())

...仅检查第一行是否匹配-如果多于一行,则会出现问题。考虑更改查询以查找与用户名和密码匹配的内容

PreparedStatement ps = conn.prepareStatement( "select * from login_db where emp_num=? AND pword=?");
ps.setString(1, aes1);
ps.setString(2, aes2); 
ResultSet rs = ps.executeQuery();
if ( rs.next() ){
    //logic here
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户从应用程序登录数据库

来自分类Dev

如何从MYSQL数据库中获取数据并将其显示在应用程序上?

来自分类Dev

覆盖应用程序并删除Android上的数据库

来自分类Dev

PHP、MySQL 应用程序用户和凭据应该在应用程序还是数据库上运行?

来自分类Dev

无法从Java应用程序访问mysql数据库

来自分类Dev

应用程序上的并发用户导致MySQL数据库错误

来自分类Dev

应用程序上的并发用户导致MySQL数据库错误

来自分类Dev

Symfony登录应用程序-示例数据未添加到数据库

来自分类Dev

数据库应用程序崩溃

来自分类Dev

Web应用程序登录页面,无需使用数据库

来自分类Dev

SQL Lite Android应用程序从数据库登录身份验证

来自分类Dev

使用外部数据库登录ASP.net Web窗体应用程序

来自分类Dev

使用sql数据库表属性用作Web应用程序中用户的登录凭据

来自分类Dev

Php - 将数据库的值与 android 应用程序发送的值进行比较的代码

来自分类Dev

如何从java应用程序访问数据库而无需在xampp上外部放置mysql服务器

来自分类Dev

Ionic应用程序从SQL数据库检索数据

来自分类Dev

数据库数据建模器应用程序

来自分类Dev

Android应用程序。从数据库中获取数据

来自分类Dev

将数据从Shiny应用程序上传到MySQL数据库

来自分类Dev

无法在我的Android应用程序中将数据从mysql数据库获取到ListView

来自分类Dev

从Android应用程序将数据提交到MySQL数据库

来自分类Dev

将数据从Shiny应用程序上传到MySQL数据库

来自分类Dev

从 MySQL 数据库导入 iOS 应用程序中的数据

来自分类Dev

在Heroku上运行应用程序,但在其他数据库上运行

来自分类Dev

如何在Bluemix中将PHP应用程序转换为使用SQL数据库而不是mySQL数据库?

来自分类Dev

如何在Bluemix中将PHP应用程序转换为使用SQL数据库而不是mySQL数据库?

来自分类Dev

防止在清除的应用程序上删除数据库或共享首选项

来自分类Dev

如何在“调试” Firebase数据库上运行调试应用程序版本

来自分类Dev

单独的数据库多租户应用程序能否在Azure上运行?

Related 相关文章

  1. 1

    用户从应用程序登录数据库

  2. 2

    如何从MYSQL数据库中获取数据并将其显示在应用程序上?

  3. 3

    覆盖应用程序并删除Android上的数据库

  4. 4

    PHP、MySQL 应用程序用户和凭据应该在应用程序还是数据库上运行?

  5. 5

    无法从Java应用程序访问mysql数据库

  6. 6

    应用程序上的并发用户导致MySQL数据库错误

  7. 7

    应用程序上的并发用户导致MySQL数据库错误

  8. 8

    Symfony登录应用程序-示例数据未添加到数据库

  9. 9

    数据库应用程序崩溃

  10. 10

    Web应用程序登录页面,无需使用数据库

  11. 11

    SQL Lite Android应用程序从数据库登录身份验证

  12. 12

    使用外部数据库登录ASP.net Web窗体应用程序

  13. 13

    使用sql数据库表属性用作Web应用程序中用户的登录凭据

  14. 14

    Php - 将数据库的值与 android 应用程序发送的值进行比较的代码

  15. 15

    如何从java应用程序访问数据库而无需在xampp上外部放置mysql服务器

  16. 16

    Ionic应用程序从SQL数据库检索数据

  17. 17

    数据库数据建模器应用程序

  18. 18

    Android应用程序。从数据库中获取数据

  19. 19

    将数据从Shiny应用程序上传到MySQL数据库

  20. 20

    无法在我的Android应用程序中将数据从mysql数据库获取到ListView

  21. 21

    从Android应用程序将数据提交到MySQL数据库

  22. 22

    将数据从Shiny应用程序上传到MySQL数据库

  23. 23

    从 MySQL 数据库导入 iOS 应用程序中的数据

  24. 24

    在Heroku上运行应用程序,但在其他数据库上运行

  25. 25

    如何在Bluemix中将PHP应用程序转换为使用SQL数据库而不是mySQL数据库?

  26. 26

    如何在Bluemix中将PHP应用程序转换为使用SQL数据库而不是mySQL数据库?

  27. 27

    防止在清除的应用程序上删除数据库或共享首选项

  28. 28

    如何在“调试” Firebase数据库上运行调试应用程序版本

  29. 29

    单独的数据库多租户应用程序能否在Azure上运行?

热门标签

归档