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

标签 java android jakarta-mail

我正在使用 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/

相关文章:

android - 当用户按下工具栏中的后退图标时,我如何关闭键盘?

java - WebDriver 自动化验证电子邮件

java - 使用 lucene 更新文档字段

java - 我不知道还能做什么 sql/java

java - 如何以 arrayA 的第一个值乘以数组的最后一个值的方式将两个数组相乘?

安卓: "Navigation Type: Fixed Tabs + Swipe"

java - 无法克隆 ArrayList<MatOfPoint> 元素

java - 如何使用 javax.mail 在 outlook 上创建自定义标志?

java - 无法从java程序: Unable to relay for abc@wipro. com发送电子邮件

java - 通常,在应用程序的什么地方放置 SQL 查询?