我正在使用android.util.Base64为HTTP基本身份验证编码用户名+密码,如下所示:
String encoded = Base64.encodeToString((username+":"+password).getBytes(), Base64.NO_WRAP);
如果我使用“用户”& “传递”为我希望得到的用户名和密码dXNlcjpwYXNzCg ==(来自openssl)
echo 'user:pass' | openssl base64
但我得到了这个:
为什么会这样?
谢谢,
杰克
注意:只需将结果字符串传递给显示进度对话框:
Tools.ShowProgress(encoded, Login.this);
答案 0 :(得分:5)
(username+":"+password).getBytes()
String.getBytes()返回当前平台编码中字符串的字节数。为确保您与其他平台匹配,您可能希望将String.getBytes(Charset)与UTF-8一起使用:
(username+":"+password).getBytes("UTF-8")
如果这不是问题,另外要检查的是你的输入是否符合你的想法:
String input = username+":"+password;
log.warn("Input was: " + input);
// calculate base64