解决思路,前端js加密,controller层解密
1、前端加密
引入js(jsencrypt.min.js) 个人备份js
function login() {
$.modal.loading($("#btnSubmit").data("loading"));
var username = $("input[name='username']").val().trim();
var password = $("input[name='password']").val().trim();
var validateCode = $("input[name='validateCode']").val();
var rememberMe = $("input[name='rememberme']").is(':checked');
$.ajax({
type: "post",
url: ctx + "login",
data: {
"username": username,
"password": getP(password),
"validateCode" : validateCode,
"rememberMe": rememberMe
},
success: function(r) {
。。。。。。。。。。。。。。。省略
function getP(pw){
var encrypt = new JSEncrypt();
encrypt.setPublicKey("-----BEGIN PUBLIC KEY-----MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBdGLuF0cP1mE8cuK24mp7qi5sSmNVSB0qdJiiw6jzkU+iH1+bVJmFbuiAmYG/VOym6ZDftCy2R4oJvkP7MgS1nsxBRdnb0eAU/abVy1Wk2y1d6ZsiF35Shpy235WfkIVc9cRX71LpNxetfMiFAJSqSZ2XbNJTBWZEah/r0rBgRSAkC6NbFsgdWi6VbPGDVM+Y2pM8wQjrUi3ZCTE9SSchv/grbl/OJm/T5uaYP0VqoOV0Zzi89bqjby9XexInyCj+1hxy7+9NP1brx5qHRAuiidbtqHzVOyKpsKGPh2fJugbVhzUoqM6ebL/j1y8w92obMj3snsgykqj5T2kfSiiMxAgMBAAE=-----END PUBLIC KEY-----");
var encryted = encrypt.encrypt(pw);
return encryted;
}
这儿的公钥可以放到jsencrypt.min.js的最后面,然后在这儿取,我直接就写到这儿了
controller层解密代码
@PostMapping("/login")
@ResponseBody
public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
{
String repassword = "";
//System.out.println("解密前"+password);
//对传过来密码的值进行解密
try {
repassword = RSAUtil.decrypt(password,RSAUtil.PRIVATE_KEY);

本文介绍了一种使用前端JavaScript进行密码加密的方法,并在后端通过Java实现了解密逻辑。具体步骤包括:前端引入jsencrypt.min.js库进行公钥加密,而后端利用RSAUtil工具类完成私钥解密。
最低0.47元/天 解锁文章
2286

被折叠的 条评论
为什么被折叠?



