Android(安卓)解析jwt遇到java.lang.IllegalArgumentException: bad base-64
16lz
2021-12-04
解析jwt的时候遇到了java.lang.IllegalArgumentException: bad base-64
百思不得其解
按照网上说的:Android&ios java
这俩咋就不好使呢?
后来我看了篇帖子说
android开发中的bad base-64错误在涉及到服务器的软件中,由于使用android的Base64解码功能,而服务器端加密为了防止URL格式问题,会采用Apache的URLSafeEncode等方式进行数据安全加密,android端使用Base64.decode(src,Base64.URL_SAFE)不会出现问题但是如果android自己加密,使用的时Base64.encodeToString(bstr,Base64.DEFAULT)就会有可能出现
对就是这个可能性,让我用Base64.DEFAULT解析的时候出bug了,关键这bug还挺奇怪,跟字符串长度没关系,跟解析内容没关系,但解析的东西组合到一起就报错,使用了Base64.URL_SAFE之后就正常了
private fun base64Decode(content: String ): String? { //注意此处不能使用Base64.DEFAULT,否则再特定情况下会报错 val contentByte = Base64.decode(content,Base64.URL_SAFE) try { return String(contentByte, java.nio.charset.StandardCharsets.UTF_8) } catch (e: Exception) { e.printStackTrace() } return "" }
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- Android中使用ormlite实现持久化--HelloOrmLite
- Android中使用listview实现qq/微信好友列表
- Android学习笔记---第三天---基础UI组件---Button&ImageButton
- (翻译) Backward Compatibility for Applications
- Android(安卓)画图类View与SurfaceView之学习