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

How can I prevent users from reading a variable in Java?

我正在 Java 中编写一个 Android 应用程序,该应用程序的一部分从我的电子邮件帐户向另一个电子邮件帐户发送电子邮件。我正在使用 JavaMail 来实现这一点。

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

这是我用来存储电子邮件和密码的代码。它只是它们自己的静态变量 class:

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

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

我不想详细介绍这款应用,但我家乡以外的人没有任何理由下载这款应用。这完全是出于本地目的。这是我从未在其他任何地方使用过的密码,也是我专门为此应用程序创建的电子邮件帐户,因此我不会在这里冒很大的风险。我还是希望尽可能安全。

使用私有变量而不是 public 变量。请参考这个Java Access Modifiers

如果您将密码硬编码到程序中,就无法阻止有人想泄露密码。

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