我正在使用 Java 编写 Android 应用程序,该应用程序的一部分将电子邮件从我的电子邮件帐户发送到另一个电子邮件帐户。我正在使用 JavaMail 来实现此目的。
一切都工作得很好,除了我发送的电子邮件帐户的密码被硬编码到我的程序中的变量中。我不希望用户能够访问这个变量。我需要加密它吗?我该怎么做呢?有没有办法配置 JavaMail,这样我就不必将密码存储在设备上的任何位置?
这是我用来存储电子邮件和密码的代码。它只是它们自己的类中的静态变量:
public class Config {
public static final String EMAIL ="[email]@gmail.com";
public static final String PASSWORD ="[password]";
}
我尝试在帐户上激活双因素身份验证,但 JavaMail 在这种情况下失败。
我不想详细介绍该应用程序,但我家乡以外的人没有任何理由下载该应用程序。这完全是为了本地目的。这是我从未在其他地方使用过的密码,也是我专门为此应用程序创建的电子邮件帐户,因此我不会在这里冒重大风险。我仍然希望尽可能安全。
最佳答案
如果您将密码硬编码到程序中,则无法阻止有人将其泄露(如果他们愿意的话)。
您可以设置一个应用程序可以连接到的网络服务器,而不是从应用程序发送电子邮件。如果必须发送电子邮件,您可以从此网络服务器发送电子邮件。这样,凭据就位于您的私有(private)服务器上,而不是位于您发送给所有人的应用程序上。
关于java - 如何防止用户读取 Java 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467119/