【发布时间】:2014-01-17 11:58:55
【问题描述】:
我正在使用内置 Base64 类从 Android 客户端发送一些数据:
String auth = android.util.Base64.encodeToString ("someusername:somepassword".getBytes ("UTF-8"), android.util.Base64.NO_WRAP);
这将创建一个编码字符串:c29tZXVzZXJuYW1lOnNvbWVwYXNzd29yZA==
但是当我尝试在服务器上解码时,使用不同的库:
String auth = com.sun.org.apache.xml.internal.security.utils.Base64.decode (header).toString ();
我得到:[B@5c92ac1c
谁能告诉我我在这里做错了什么?我无法将 Android 的 util 导入我的服务器代码。
如果我遗漏了一些非常琐碎的事情,请道歉......
【问题讨论】:
-
编码后的字符串确实与“someusername:somepassword”匹配,因此您在 apache Base64 中一定缺少某些内容(如何向其传递参数,或如何处理返回值)。它确实在包中说明了内部安全性,所以也许它不完全是您希望的那样?另外,考虑一下:stackoverflow.com/questions/7111577/…
-
确定
header包含Base64 数据? -
@ThomasW。或者那个.. :)
-
是的,我肯定会在我的服务器上收到相同的编码字符串。事实上,更奇怪的是我也没有使用 android.util.Base64.decode() 获得实际值。
标签: java android encoding base64 decoding