gpt4 book ai didi

java - 为什么 android.util.Base64 返回不同的字符串?

转载 作者:行者123 更新时间:2023-11-29 08:04:00 25 4
gpt4 key购买 nike

我正在使用 android.util.Base64 为 HTTP 基本身份验证编码用户名 + 密码,如下所示:

String encoded = Base64.encodeToString((username+":"+password).getBytes(), Base64.NO_WRAP);

如果我使用“user”和“pass”作为用户名和密码,我希望得到 dXNlcjpwYXNzCg==(来自 openssl)

echo 'user:pass' | openssl base64

但我得到的是:

returned string

知道这是为什么吗?

谢谢,

jack

注意:只需将结果字符串传递给显示进度对话框即可:

Tools.ShowProgress(encoded, Login.this);

最佳答案

(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

关于java - 为什么 android.util.Base64 返回不同的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com