使用Base64在服务器端进行加密:
String 加密后的字符串 Base64.getEncoder().encodeToString(“需要加密的字符串”.getBytes());
byte[] 解密后的byte数组 Base64.getDecoder().decode(“需要解密的字符串”);
String 解密后的字符串 = new String(解密后的byte数组);
使用jquery.base64.js在jsp页面进行解密:
1.需要先导入jquery.base64.js ,以及jQuery文件。
var 解密后的字符串 = $.base64.decode(加密后的字符串);
登录案例记住密码功能:(数据进行加密)
服务器端进行加密
UserServiceImpl userService = new UserServiceImpl();
Admin loginAdmin = userService.login(admin.getUsername(), admin.getPassword());
// 登录成功后才需要记住密码
if (loginAdmin != null){
// 如果checkbox不为空,证明用户勾选了记住密码
if (checkbox != null){
// 创建俩个cookie ,响应cookie给浏览器,浏览器端可以过去cookie信息,保存到本地,
// 获取username&password 然后将其加密
String username_before = loginAdmin.getUsername();
String password_before = loginAdmin.getPassword();
String username_after = Base64.getEncoder().encodeToString(username_before.getBytes());
String password_after = Base64.getEncoder().encodeToString(password_before.getBytes());
// 将加密后的账号密码设置在cookie中
Cookie username = new Cookie("username",username_after);
Cookie password = new Cookie("password",password_after);
// 设置cookie存活时间
username.setMaxAge(60*60*30);
password.setMaxAge(60*60*30);
System.out.println(username_after);
System.out.println(password_after);
// 将cookie响应给浏览器
response.addCookie(username);
response.addCookie(password);
}else {
// 创建俩个cookie ,响应cookie给浏览器,浏览器端可以过去cookie信息,保存到本地,
// 获取username&password 然后将其加密
String username_before = loginAdmin.getUsername();
String password_before = loginAdmin.getPassword();
String username_after = Base64.getEncoder().encodeToString(username_before.getBytes());
String password_after = Base64.getEncoder().encodeToString(password_before.getBytes());
// 没有点击记住密码,删除cookie
Cookie username = new Cookie("username",username_after);
Cookie password = new Cookie("password",password_after);
username.setMaxAge(0);
password.setMaxAge(0);
response.addCookie(username);
response.addCookie(password);
}
// request域中不需要共享数据,使用重定向
request.getSession().setAttribute("admin",loginAdmin.getUsername());
response.sendRedirect(request.getContextPath() + "/index.jsp");
}else {
System.out.println(userService);
request.setAttribute("error_msg","您的账号或者密码输入有误!");
// 如果错误给出提示,转发页面到/login.jsp
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
jsp页面 进行解密
1.需要先导入jquery.base64.js ,以及jQuery文件。
window.onload = function () {
var username_before = cookie.getCookie("username");
var password_before = cookie.getCookie("password");
var decode_username = $.base64.decode(username_before);
var decode_password = $.base64.decode(password_before);
var ele_username = document.getElementById("username");
ele_username.value = decode_username;
var ele_password = document.getElementById("password");
ele_password.value = decode_password;
};