带有base 64编码的javax.mail.Authenticator

时间:2018-03-22 14:31:27

标签: java javamail

我有一台需要ID和密码的服务器必须在Base64中编码。意思是代替Username,你必须首先将它编码到Base64中并给出编码的字符串。

然后在我的Java客户端中我有一个javax.mail.Authenticator。我手动将ID和密码编码到base64中,将它们保存为字符串并使用这些字符串初始化Authenticator。但即使我一次又一次地检查,ID和密码也是错误的。

在这种情况下可能出现什么问题?

编辑:另一个问题是关于身体部位,这里是关于Authenticator

2 个答案:

答案 0 :(得分:0)

使用java.util.Base64。编码和解码将如下:

String s = "...full Unicode...";
s = Base64.getEncoder().encodeToString(s.getBytes(StandardCharsets.UTF_8));
s = new String(Base64.getDecoder().decode(s), StandardCharsets.UTF_8);

可以进行一些调整,例如最后没有填充,替代URL安全Base64等。

答案 1 :(得分:0)

我的问题的答案是,邮件服务器中的openssl需要Base64编码,而当我通过java客户端连接时,它的UTF-8。