我正在尝试使用Java中的身份验证标头解码Base64字符串。我确定发送的请求在身份验证标头中有一个有效的Base64编码字符串。这是我的解码代码:
HttpServletRequest request = (HttpServletRequest) req;
byte[] test = new Base64().decode(request.getHeader("Authorization"));
在解码请求之前,它看起来像Basic dXNlcjpmZGdmcw==
尝试解码后,它看起来像这样:«"qÕÍ•È陑™Ì
我不确定我做错了什么,无论我使用什么解码实用程序,它总是看起来像胡言乱语。谢谢你的阅读。
答案 0 :(得分:1)
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
System.out.println(new String(decoder.decodeBuffer("dXNlcjpmZGdmcw==")));
打印user:fdgfs
。注意:Decode Base64 data in Java以获得更好的解决方案。您是否检查了返回的内容:
request.getHeader("Authorization")
答案 1 :(得分:0)
那是因为你试图解码整个字符串“Basic dXNlcjpmZGdmcw ==”而不是 “dXNlcjpmZGdmcw ==”。