Java和JavaScript实现前端加密后端解密

在前端和后端数据传输时,常常涉及到隐私数据的传输(例如用户名和密码),这时,我们就需要对隐私数据进行加密解密。

前端加密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="js/jquery.min.js"></script>
<script type="text/javascript">
$(function () {

var data = "您好+";
while (data.indexOf("+") > -1) {
data = data.replace("+", "%2B");
}
data = btoa(encodeURI(data));
console.log("编码后" + data); //编码后JUU2JTgyJUE4JUU1JUE1JUJEJTI1MkI=
$.post("/test/testPost", {"data":data},function (data) {

})
})
</script>

后端解密

1
2
3
4
5
6
7
8
9
10
11
12
13
@PostMapping("/testPost")
@ResponseBody
public int testPost(String data) throws UnsupportedEncodingException {
System.out.println("解码前" + data); //解码前JUU2JTgyJUE4JUU1JUE1JUJEJTI1MkI=
//1.开始解码
Base64 base64 = new Base64();
String decode = URLDecoder.decode(new String(base64.decode(data), "utf-8"), "utf-8");
System.out.println("解码后" + decode); //解码后您好%2B
//2.将%2B换回+
String decodeVo = decode.replace("%2B","+");
System.out.println("完全解码" + decodeVo); //完全解码您好+
return 1;
}