翻译代码 MessageDigest messageDigest = MessageDigest.getInstance("SHA256"); byte[] hashbytes = messageDigest.digest(pass.getBytes(StandardCharsets.UTF_8)); String password_hash = Base64.getEncoder().encodeToString(hashbytes); resultSet = Database.executeQuery(sql);//executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。 if (resultSet.next()) { String password = resultSet.getString("password"); if (password.equals(password_hash)) { JOptionPane.showMessageDialog(null, "登录成功", "登录结果", JOptionPane.INFORMATION_MESSAGE); int userid = Database.query_id(username); ENC_DEC enc_dec = new ENC_DEC(userid); enc_dec.setSize(400,400); enc_dec.setVisible(true); } else { JOptionPane.showMessageDialog(null, "登录失败", "登录结果", JOptionPane.INFORMATION_MESSAGE); } }else { JOptionPane.showMessageDialog(null, "登录失败", "登录结果", JOptionPane.INFORMATION_MESSAGE); }
时间: 2024-02-15 09:27:04 浏览: 164
这段代码的作用是将用户输入的密码进行加密,然后与数据库中保存的密码进行比较,如果相同则登录成功,否则登录失败。具体代码如下:
```
//使用SHA256算法对密码进行加密
MessageDigest messageDigest = MessageDigest.getInstance("SHA256");
byte[] hashbytes = messageDigest.digest(pass.getBytes(StandardCharsets.UTF_8));
String password_hash = Base64.getEncoder().encodeToString(hashbytes);
//查询数据库中是否有与输入的用户名和加密后的密码匹配的记录
resultSet = Database.executeQuery(sql);
if (resultSet.next())
{
String password = resultSet.getString("password");
if (password.equals(password_hash))
{
//登录成功,打开加密解密窗口
JOptionPane.showMessageDialog(null, "登录成功", "登录结果", JOptionPane.INFORMATION_MESSAGE);
int userid = Database.query_id(username);
ENC_DEC enc_dec = new ENC_DEC(userid);
enc_dec.setSize(400,400);
enc_dec.setVisible(true);
}
else {
//密码不正确,登录失败
JOptionPane.showMessageDialog(null, "登录失败", "登录结果", JOptionPane.INFORMATION_MESSAGE);
}
}else {
//用户名或密码不正确,登录失败
JOptionPane.showMessageDialog(null, "登录失败", "登录结果", JOptionPane.INFORMATION_MESSAGE);
}
```
首先使用SHA256算法对用户输入的密码进行加密,然后将加密后的密码与数据库中保存的密码进行比较。如果比较结果相同,则表示登录成功,弹出登录成功的提示框,并打开一个名为"ENC_DEC"的窗口。如果比较结果不同,则表示登录失败,弹出登录失败的提示框。
阅读全文