我有个对 消息加解密说明 中 EncodingAESKey decode 的疑问
发布于 8 年前 作者 fang50 7858 次浏览 来自 问答

按 文档 说明,这个 key 应该是在 62 个合法字符中选取,并组成 固定为 43 个字符 的一个 key

但文档中没有提及这个组成的 43 个字符 是否需要 符合 base64 编码规则

即这个 key 是否 应该 是一个 可以被 Base64 正常 decode 的一个 base64 字符串

文档中只是提及需要在 末尾 加个 “=” ,从而让其 能被 base64  强制 decode

但这个地方对于 apache common codec 1.3 开始不适用

因为从这个版本开始,会对 decode 的字符串 进行 格式校验,格式不对会直接抛异常

https://commons.apache.org/proper/commons-codec/changes-report.html#a1.13

https://issues.apache.org/jira/browse/CODEC-134

那么对于任何 base64 工具,只要有做格式校验,就无法正常 decode 成功

是否有必要改进文档中的规则和限制?

1 回复

我也遇到这样的问题,请问如何解决呢?用的是微信后台随机生成的KEY报错:

java.lang.IllegalArgumentException: Last encoded character (before the paddings if any) is a valid base 64 alphabet but not a possible value] with root cause
java.lang.IllegalArgumentException: Last encoded character (before the paddings if any) is a valid base 64 alphabet but not a possible value

参考:https://developers.weixin.qq.com/community/develop/doc/000e46d10d0050aa6559aec3a56400?_at=1578900243140

10月份就已经提过了,他们还没更新,唉,腾讯真的不靠谱,很无奈。

回到顶部