java.lang.IllegalArgumentException: Last unit does not have enough valid bits 报错解决

java.lang.IllegalArgumentException: Last unit does not have enough valid bits 报错解决

问题
在进行base64加密和解密的过程中会出现 报错:
java.lang.IllegalArgumentException: Last unit does not have enough valid bits
在这里插入图片描述
原因
根本原因:编码后的URL长度不符合要求(要求长度是4的倍数)

看了下其他的解决方法 主要是从base64解密方法下手:(如下:)
---------------------------------------------------
val decoder = Base64.getUrlDecoder();
var url = new String(decoder.decode(base_url))
---------------------------------------------------

这个方法对我没法解决!!因为我的直接原因不是这个!!!

解决方法
直接原因:url传参时丢失特殊字符(如 “+”、“#” 等)导致位数不足24位

(如果不是我这个原因就再查查吧~~)

参考:

特殊字符十六进制值
+%2B
/%2F
\%5C
举个小栗子:
---------------------------------------------------
encodeYydh.replaceAll("+","%2B") //我这儿的问题是“+”丢失,影响不大,直接替换了.
---------------------------------------------------

总结

提供个小思路 ~~


版权声明:本文为weixin_44296621原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。