vue3 base64加密后,由spring boot读取,布署到了服务器后,直接报错:Illegal base64 character 20,然后又报Illegal key size的解决

1、Illegal base64 character 20

报这个错误,是因为base64字符串传到了服务端以后,tomcat收到了字符串默认是decode处理的,然后如果前端不encode的话,就会出现 空格的情况,这样就导致了上面的错误。

查看了日志,发现有二处出现了空格。

解决:代码片段

uid(加密以后的原串):U2FsdGVkX1/4NmzFkl+ERKvn9M8HxOmCHucTBoGW6x+rJoERofRL2tFeqVg96AgAIR/y8sjs1rZDt+ebq4d7rA==

前端进行encode:

uid = encodeURIComponent(uid);

encode :U2FsdGVkX1%2F4NmzFkl%2BERKvn9M8HxOmCHucTBoGW6x%2BrJoERofRL2tFeqVg96AgAIR%2Fy8sjs1rZDt%2Bebq4d7rA%3D%3D

后端spring boot get方法收到参数就是正常的。

source:U2FsdGVkX1/4NmzFkl+ERKvn9M8HxOmCHucTBoGW6x+rJoERofRL2tFeqVg96AgAIR/y8sjs1rZDt+ebq4d7rA==

实测以后,发现这种方式是可以的。

2、Illegal key size

JDK受版本安全限制,默认只允许128位长度以内的。秘钥长度,如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常。 java运行时环境默认读到的是受限的policy文件。 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制所造成的。JDK1.8之后已经兼容了该问题。

解决这个问题只要覆盖二个Jar包即可。

目前用的是JDK1.8版本,下载:JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download 官网地址

这个需要oracle账号才可以下载。

百度网盘:

链接:https://pan.baidu.com/s/1HcCCycvFyJtaLVXJSK9_FA 
提取码:tmii

覆盖处理:

这样就成功解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值