我不确定我是应该在这里问这个问题,还是在安全堆栈溢出页面中,但我肯定有人会对此做出很好的回答。
我正在构建一个Android应用程序,它使用Fabric.io Twitter package。使用它需要一个TWITTER_KEY和一个TWITTER_SECRET代码。我试图隐藏它们,因为当包被添加时,他们就提到了这一点。
现在,在启动屏幕活动的时候,我正在用这样的SharedPreference保存我的关键内容:
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("TWITTER_KEY", "xxxxxxxxxxxxxxxxxxxxxxx").commit();稍后,为了初始化Twitter包,我将按如下方式接收它们:
TwitterAuthConfig authConfig = new TwitterAuthConfig(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("TWITTER_KEY", "defaultStringIfNothingFound")我对TWITTER_SECRET代码也是这样做的。
我有两个问题:
谢谢你的帮忙!
发布于 2015-10-21 11:14:30
如果人们能够访问我的钥匙,他们能达到什么目的?
我不知道API,所以我不能回答这个问题。
这是否足够安全,使其他应用程序无法访问我的钥匙?
是的,除非另一个应用程序有根权限。
这对应用程序反编译来说足够安全吗?
不是的。但你对此无能为力。你可以让找到密钥变得有些困难,但是如果键被嵌入到应用程序中,就没有100%的解决方案了。无论应用程序能做什么来恢复密钥,攻击者也可以这样做。
顺便说一句。为什么要将密钥存储在共享首选项中?
https://stackoverflow.com/questions/33257676
复制相似问题