如何隐藏应用中的硬编码敏感信息以免被提取?

时间:2018-02-18 21:15:09

标签: java android security

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

1 个答案:

答案 0 :(得分:0)

  

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

没有

充其量,使用像DexGuard这样的商业工具,你可以让攻击者更难以获得字符串,但是对于某些人来说打败这些工具并不困难。

  

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

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

  

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

这是用户的数据,因此用户查看该数据是完全合理的。毕竟,它是用户的设备,用户的电池,用户的带宽和用户的时间。你的应用只是这个谜题的一小部分。

  

所以用户可以联系的唯一方式就是上面描述的那个

不,不是。

  

现在我如何隐藏反编译应用程序的人看到的java类文件?

你不能。

相关问题