如何防止用户在Java中读取变量?

时间:2016-07-19 19:39:20

标签: java android javamail

我正在使用Java编写Android应用程序,部分应用程序会将电子邮件帐户中的电子邮件发送到另一个电子邮件帐户。我正在使用JavaMail来实现这一目标。

这一切都运行良好,除了我发送的电子邮件帐户的密码硬编码到我的程序中的变量。我不希望用户能够访问此变量。我需要加密吗?我该怎么做呢?有没有办法配置JavaMail所以我不必将我的密码存储在设备的任何地方?

以下是我用来存储电子邮件和密码的代码。它只是自己类中的静态变量:

public class Config {
      public static final String EMAIL ="[email]@gmail.com";
      public static final String PASSWORD ="[password]"; 
}

我尝试在帐户上激活双因素身份验证,但在这种情况下JavaMail失败。

我不想详细介绍该应用,但我家乡以外的任何人都没有理由下载此应用。这完全是为了本地目的。这是我从未在其他任何地方使用的密码,它是我专门为此应用程序制作的电子邮件帐户,因此我不会在此处承担重大风险。我仍然希望尽可能安全。

2 个答案:

答案 0 :(得分:5)

如果您将密码硬编码到程序中,则无法阻止有人将密码删除。

您可以设置应用可以连接的网络服务器,而不是从应用发送电子邮件。如果必须发送电子邮件,则可以从此Web服务器发送电子邮件。这样,凭据就在您的私人服务器上,而不是发送给每个人的应用程序。

答案 1 :(得分:-1)

使用私有变量而不是公共变量。请参阅此Java Access Modifiers