在Javaweb项目中用MVC模式和ajax接口进行后端管理员RSA加密登录验证的具体代码实现 
时间: 2023-06-01 20:01:39 浏览: 22
以下是一个基于MVC模式和ajax接口的后端管理员RSA加密登录验证的代码实现示例:
1. Controller层代码
```java
@RestController
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
// 登录接口
@PostMapping("/login")
public Result login(@RequestBody Admin admin, HttpServletRequest request) {
String username = admin.getUsername();
String password = admin.getPassword();
String rsaKey = admin.getRsaKey();
// 解密密码
String decryptedPwd = RSAUtils.decrypt(password, rsaKey);
// 调用service层的登录验证方法
boolean success = adminService.login(username, decryptedPwd);
if (success) {
// 登录成功,将管理员信息存入session中
request.getSession().setAttribute("admin", admin);
return Result.success("登录成功");
} else {
return Result.fail("用户名或密码错误");
}
}
}
```
2. Service层代码
```java
@Service
public class AdminServiceImpl implements AdminService {
@Autowired
private AdminMapper adminMapper;
@Override
public boolean login(String username, String password) {
Admin admin = adminMapper.selectByUsername(username);
if (admin != null) {
// 数据库中存在该管理员
String pwdInDB = admin.getPassword();
// 将用户输入的明文密码进行MD5加密后与数据库中的密码进行比较
String encryptedPwd = MD5Utils.encrypt(password);
if (pwdInDB.equals(encryptedPwd)) {
// 密码匹配,登录成功
return true;
}
}
// 登录失败
return false;
}
}
```
3. 前端页面代码
```html
<form id="loginForm">
<div class="form-group">
<label for="username">用户名:</label>
<input type="text" class="form-control" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">密码:</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">登录</button>
</form>
<script>
$('#loginForm').submit(function (e) {
e.preventDefault(); // 阻止表单默认提交行为
var username = $('#username').val();
var password = $('#password').val();
var rsaKey = '...'; // 从后端获取RSA公钥
// 使用RSA公钥加密密码
var encryptedPwd = RSAUtils.encrypt(password, rsaKey);
$.ajax({
url: '/admin/login',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
username: username,
password: encryptedPwd,
rsaKey: rsaKey
}),
success: function (result) {
if (result.code === 0) {
// 登录成功,跳转到管理员首页
window.location.href = '/admin/index.html';
} else {
// 登录失败,显示错误信息
alert(result.message);
}
},
error: function () {
alert('登录失败,请稍后重试');
}
});
});
</script>
```
在以上代码中,RSAUtils为封装了RSA加密、解密方法的工具类,MD5Utils为封装了MD5加密方法的工具类,Admin为管理员实体类,AdminMapper为管理员Mapper接口,Result为自定义的返回结果类。以上代码仅供参考,具体实现方式可以根据项目需求进行调整。
相关推荐




