对于提交到数据库的密码进行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;

package combean;import javasqlConnection;import javasqlDriverManager;import javasqlPreparedStatement;import javasqlResultSet;import javasqlSQLException;import javautilArrayList;数据库的所有操作改显示所有用户信息public

原文地址: http://www.cveoy.top/t/topic/fojz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录