package combean;import javasqlConnection;import javasqlDriverManager;import javasqlPreparedStatement;import javasqlResultSet;import javasqlSQLException;import javautilArrayList;数据库的所有操作改显示所有用户信息public
对于提交到数据库的密码进行MD5加密可以增加数据的安全性,可以在LinkBean类中添加一个MD5加密方法,如下所示:
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;
public class LinkBean { // 省略其他代码...
// MD5加密方法
public static String md5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] bytes = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(Integer.toHexString((b >> 4) & 0x0F));
sb.append(Integer.toHexString(b & 0x0F));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
// 省略其他代码...
}
在调用insertAdmin方法时,将密码进行MD5加密后再提交到数据库中,如下所示:
public int insertAdmin(Admin c){
int flag=0;
connect();
String sql="insert into dl(xm,pw) values(?,?)";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,c.getName());
ps.setString(2, md5(c.getPwd())); // 对密码进行MD5加密
flag=ps.executeUpdate();
} catch(SQLException e){
e.printStackTrace();
}
return flag;
}
在调用Login方法时,将用户输入的密码进行MD5加密后再与数据库中的密码进行比较,如下所示:
public boolean Login(Admin a){ boolean flag=false; connect(); try{ String sql = "select * from dl where xm=?"; PreparedStatement pars = conn.prepareStatement(sql); pars.setString(1, a.getName()); ResultSet rs = pars.executeQuery(); if (rs != null && rs.next()) { String p = rs.getString(3); System.out.println("真实的密码是"+p); if (md5(a.getPwd()).equals(p)) { // 对密码进行MD5加密后再比较 flag = true; } else { System.out.println("输入密码有误,请返回重新输入"); } } else { System.out.print("没有该用户,请返回重新输入"); } } catch (SQLException e) { e.printStackTrace(); } closeConn(); return flag; }
在调用updateAdmin方法时,将新密码进行MD5加密后再更新到数据库中,如下所示:
public int updateAdmin(String name,String pwd){ int flag=0; connect(); try { String sql="update dl set pw=? where xm=?"; PreparedStatement past=conn.prepareStatement(sql); past.setString(1, md5(pwd)); // 对新密码进行MD5加密 past.setString(2, name); flag=past.executeUpdate(); closeConn(); } catch(Exception e){ System.out.println(e); } return flag; }
在调用delAdmin方法时,不需要进行MD5加密,如下所示:
public int delAdmin(String name){ connect(); int flag=0; try{ String sql="delete from dl where xm=?"; PreparedStatement past=conn.prepareStatement(sql); past.setString(1, name); flag=past.executeUpdate(); closeConn(); } catch(Exception e){ System.out.println(e); } return flag;
原文地址: http://www.cveoy.top/t/topic/fojz 著作权归作者所有。请勿转载和采集!