Base64编码避坑指南
Base64编码避坑指南
- 1. 多个Base64编码值可以拼接一块一次解码吗?
- 2. Base64编码值作为`@RequestParam` 参数传递会有什么问题?
探索Base64奥秘:数据转换的神奇魔法师
1. 多个Base64编码值可以拼接一块一次解码吗?
答:不可以。
需要对每个Base64编码值单独解码,然后将解码值拼接得到最终结果。
理论上可以做到部分拼接之后(遇到=
结尾则另起一个part),对每个part统一解码,然后将解码值拼接得到最终结果。这样的话,两个地方都做了拼接操作何必哪?
2. Base64编码值作为@RequestParam
参数传递会有什么问题?
答:Base64编码结果可能会出现+
,Spring MVC框架会对GET请求参数或application/x-www-form-urlencoded
的参数自动进行URLDecoder
操作,+
和%20
一样会被解码成空格,@RequestParam
参数值可能和预期的不一样。建议对Base64编码值解码进行URLEecoder
操作(或者换用16进制编码或Base62)。
Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域和短URL生成。
hutool Base62