用java写一段登录后台代码,其中密码字段使用了md5加密
时间: 2024-05-07 15:16:06 浏览: 16
这是一个简单的Java后台登录代码,其中密码字段使用了MD5加密。主要思路是将用户输入的密码进行MD5加密,然后与数据库中存储的密码进行比较。如果相同,则认为用户登录成功。
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.*;
public class Login {
public static void main(String[] args) {
String username = "testuser";
String password = "testpassword"; // 用户输入的密码
// 对密码进行MD5加密
String md5Password = getMD5(password);
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String dbPassword = "password";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection(url, user, dbPassword);
// 查询用户信息
String sql = "SELECT * FROM users WHERE username = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
rs = pstmt.executeQuery();
if (rs.next()) {
String dbPasswordMD5 = rs.getString("password");
if (dbPasswordMD5.equals(md5Password)) {
System.out.println("登录成功!");
} else {
System.out.println("密码错误!");
}
} else {
System.out.println("用户名不存在!");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 对字符串进行MD5加密
public static String getMD5(String message) {
String md5 = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageBytes = message.getBytes();
byte[] md5Bytes = md.digest(messageBytes);
for (int i = 0; i < md5Bytes.length; i++) {
md5 += Integer.toHexString((md5Bytes[i] & 0xff) | 0x100).substring(1, 3);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return md5;
}
}
```