java实现页面登陆2 密码加密

java实现页面登陆2 密码加密

userDao中修改的:
public boolean getSelect(String userName, String password) {
        boolean flag = false;
        //String sql1 = "select * from login where userName='" + userName + "' and password='" + password + "'";
        Connection conn = getCon();
        //PreparedStatement pst = null;
        try {
            //pst = (PreparedStatement) conn.prepareStatement(sql1);
            //ResultSet rs = pst.executeQuery();
            ///
            PreparedStatement pst2 = null;
            String sql2 = "select * from login";
            pst2 = (PreparedStatement) conn.prepareStatement(sql2);
            ResultSet resultSet = pst2.executeQuery();
            while (resultSet.next()) {
                String name = resultSet.getString("username");
                String pass = MD5Util.getEncryption(resultSet.getString("password"));
                if (password.equals(pass) && userName.equals(name)) {
                    flag = true;
                } else {
                    System.out.println("用户名或密码错误");
                    flag = false;
                }
            }


            ///
            /*if (rs.next()) {
                if (userName.equals(rs.getObject("username"))) {
                    flag = true;
                } else{
                    System.out.println("用户名错误,区分大小写");
                    flag = false;
                }
            }*/
            if (resultSet != null) {
                resultSet.close();
            }
            if (pst2 != null) {
                pst2.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
        }
        return flag;


    }

LoginServlet中添加:
String password = MD5Util.getEncryption(request.getParameter("password"));


MD5Util加密工具类:
public class MD5Util {
    private MD5Util() {
    }
    public static String getEncryption(String originString)
            throws UnsupportedEncodingException {
        String result = "";
        if (originString != null) {
            try {
                // 指定加密的方式为MD5
                MessageDigest md = MessageDigest.getInstance("MD5");
                // 进行加密运算
                byte bytes[] = md.digest(originString.getBytes("ISO8859-1"));
                for (int i = 0; i < bytes.length; i++) {
                    // 将整数转换成十六进制形式的字符串 这里与0xff进行与运算的原因是保证转换结果为32位
                    String str = Integer.toHexString(bytes[i] & 0xFF);
                    if (str.length() == 1) {
                        str += "F";
                    }
                    result += str;
                }
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/magicianjun/article/details/80928450