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;
}
}
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;
}
}