簡體   English   中英

使用MD5哈希密碼JAVA注冊/登錄

[英]Register/Login using a MD5 hash Password JAVA

我正在嘗試創建使用MD5哈希密碼的登錄/注冊系統。

到目前為止,我已經設法對數據庫中的密碼進行哈希處理,但是在嘗試登錄時它無法識別哈希化的密碼。

可能是一個簡單的修復,任何幫助都可以:)

注冊JAVA

String s8 = tfPassword.getText();

MessageDigest md = MessageDigest.getInstance("MD5");
                        md.update(s8.getBytes());
                        byte [] byteData = md.digest();

                        StringBuilder sb = new StringBuilder(32);
                        for (byte b : byteData) {
                            sb.append(String.format("%02x", b & 0xff));
                        }

Statement st = con.createStatement();

st.executeUpdate("insert into Login (StaffID, UName, PWord, Staff) values('"+StaffID+"','"+s7+"','"+sb+"','Yes')");

登錄JAVA:

String s2 = tfPassword.getText();

                    MessageDigest md = MessageDigest.getInstance("MD5");
                    md.update(s2.getBytes());
                    byte [] byteData = md.digest();

                    StringBuilder sb = new StringBuilder(32);
                    for (byte b : byteData) {
                        sb.append(String.format("%02x", b & 0xff));
                    }

                    Statement st = con.createStatement();   


                    // SQL Statements 
                    st.executeQuery("SELECT * FROM login WHERE UName= '"+s1+"' and PWord = '"+sb+"'");

為了將來的靈魂的利益,他們在搜索有關“ MD5哈希密碼”的答案時發現了這個問題:

使用MD5哈希作為密碼已損壞 不要這樣

https://security.stackexchange.com/questions/19906/is-md5-considered-insecure

在討論安全性主題時,我們還將鼓勵使用帶綁定占位符的預處理語句,而不是編寫容易(或似乎)容易受到SQL注入攻擊的動態SQL。


看起來問題根本不是關於MD5的密碼。 看來這確實是一個簡單得多的問題:

問:如何判斷執行的SELECT語句是否返回任何行?

答:如果SQL語句是SELECT語句,則executeQuery方法返回ResultSet對象。 使用next方法從結果集中檢索下一行。

像這樣:

    Statement st = null;
    ResultSet rs = null;

    try {

      st = con.CreateStatement();
      rs = st.executeQuery("SELECT '42' AS fortytwo");

      while( rs.next() ) {
        String foo = rs.getString("fortytwo");
        // System.out.println("yay! we got another row!");
      }

    } catch (SQLException e) {
      //
    } finally {
       if (rs != null) { rs.close(); }
       ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM