HTTP请求导致Base64解析失败的问题

5/28/2024 Java

# HTTP请求导致Base64解析失败的问题

# 问题背景

最近遇到过一个问题,将密码用base64转义,HTTP请求目标接口后。明明两边密码一致,有时候密码校验通过,有时候会失败。通过比对失败案例发现,这些失败的案例通过HTTP请求发送过去的密码+号会变成空格,最后导致密码校验失败。

# 问题分析

当浏览器或其他 HTTP 客户端发送请求时,URL 中的加号 "+" 会被自动转换为空格。这种行为是为了遵循 URL 编码的标准,确保 URL 中的特殊字符能够正确传输和解析。

image-20240528152244591

# 问题解决

发现问题是HTTP传输导致的,我们可以转换思路,查找URL编码表。将“+”号用%2B替代,这样的话传输过去的base64就是完整的了。

str.replace("+","+2B");
更新时间: 6/25/2024, 10:53:19 AM
А зори здесь тихие-тихие
Lube