public Boolean register(User user) { boolean flag=false; //密码加密 MyCipher mc=new MyCipher(); user.setUpwd(mc.encrypt(user.getUpwd(), "!")); try { int result=userMapper.identify(user.getUname()); if(result>=1) return false; userMapper.addUser(user); flag=true; } catch (Exception e) { System.out.println(e.getMessage()); } return flag; }解密如何在数据库使用
时间: 2024-01-18 07:02:41 浏览: 28
在数据库中存储加密后的密码,而不是解密后的密码,这是一种比较常见的安全措施。因此,在数据库中使用加密后的密码进行验证。
可以使用以下代码将用户输入的密码加密后与数据库中存储的加密密码进行比较:
```
public Boolean verifyPassword(String password, String encryptedPassword) {
MyCipher mc = new MyCipher();
return mc.encrypt(password, "!").equals(encryptedPassword);
}
```
其中,password 为用户输入的密码,encryptedPassword 为数据库中存储的加密密码。该方法返回一个布尔值,表示用户输入的密码是否与数据库中存储的密码匹配。
在验证用户登录时,可以调用该方法进行密码比较:
```
public Boolean login(String uname, String upwd) {
User user = userMapper.getUser(uname);
if (user != null) {
if (verifyPassword(upwd, user.getUpwd())) {
return true;
}
}
return false;
}
```
其中,uname 为用户名,upwd 为用户输入的密码。该方法首先通过用户名从数据库中获取用户信息,然后调用 verifyPassword 方法验证密码是否匹配。如果匹配,则返回 true,表示登录成功,否则返回 false,表示登录失败。