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版权协议,转载请附上原文出处链接和本声明。