Java 如何在应用程序中隐藏硬编码的敏感信息以防被提取?

Java 如何在应用程序中隐藏硬编码的敏感信息以防被提取?,java,android,security,Java,Android,Security,我正在制作一个Android应用程序,用户可以选择在需要支持的情况下与我联系,该应用程序本身包含一个内置的联系表单,当用户填写他的信息时,该应用程序将向我发送电子邮件,这样做,我已经创建了一个Google帐户,并指示应用程序使用SMPT登录该帐户,然后将电子邮件发送到我的个人邮件。因此,应用程序中的联系人表单就像一个迷你电子邮件应用程序,只能发送到我的个人电子邮件。为此,我必须在Java类文件中添加Google acc电子邮件和密码,因此基本上,如果用户反编译应用程序并打开Java类文件,他会发

我正在制作一个Android应用程序,用户可以选择在需要支持的情况下与我联系,该应用程序本身包含一个内置的联系表单,当用户填写他的信息时,该应用程序将向我发送电子邮件,这样做,我已经创建了一个Google帐户,并指示应用程序使用SMPT登录该帐户,然后将电子邮件发送到我的个人邮件。因此,应用程序中的联系人表单就像一个迷你电子邮件应用程序,只能发送到我的个人电子邮件。为此,我必须在Java类文件中添加Google acc电子邮件和密码,因此基本上,如果用户反编译应用程序并打开Java类文件,他会发现: 字符串用户名=myemail@gmail.com 字符串密码=我的密码 现在有没有一种方法可以在反编译应用程序时隐藏java类? 请不要建议更改用户与我联系的方式,因为当用户与我联系时,应用程序会发送嵌入在电子邮件中的敏感数据,因此我可以为用户提供支持,因此基本上尝试更改这种联系方式,这将导致我必须向用户显示这些敏感数据,并要求他将其与应用程序外部的电子邮件一起发送,或者我必须丢弃对支持至关重要的数据,因此用户可以联系的唯一方式就是上面所述的方式。现在,我如何才能隐藏java类文件,以防反编译应用程序的人看到?提前谢谢

现在有没有一种方法可以在反编译应用程序时隐藏java类

没有

充其量,使用DexGuard这样的商业工具,攻击者获取字符串可能会变得更加困难,但对于某些人来说,击败这些工具并不是那么困难

因为当用户联系我时,应用程序会发送嵌入在电子邮件中的敏感数据

不要通过电子邮件发送敏感数据。通过SSL连接将其发送到Web服务,使用证书固定来帮助阻止中间人MITM攻击

将导致我必须向用户显示此敏感数据

这是用户的数据,因此用户看到这些数据是完全合理的。毕竟,这是用户的设备、用户的电池、用户的带宽和用户的时间。你的应用程序充其量只是拼图的一小部分

因此,用户可以联系的唯一方式就是上面描述的方式

不,不是

现在,我如何隐藏java类文件,使其不被反编译应用程序的人看到


你不能。

这个线程的可能副本正在讨论计算机上的java类,我需要一些可以嵌入Android应用程序中的东西。副本适用。原理是一样的。好的,谢谢!对于向用户显示其数据这一部分来说,这是完全正常的,但是当我要求他发送数据时,他可能会尝试修改数据,如果他这样做,我将不知道,这就是为什么,无论如何,谢谢你的回答!然后,您需要确保发送的数据不能在您不知道的情况下被篡改,例如通过校验和。客户机/服务器编程的基本规则:您永远不能信任来自客户机的数据。