android - 保护应用程序中的对称 key

标签 android password-protection secret-key

我有一个服务器和我的应用程序都使用的 key 。此 key 用于确保请求来自应用程序。服务器尚未注册用户,但用户可以通过此应用程序发送请求。

我找不到其他解决方案...我考虑过非对称 key ,Diffie-Hellman...但除了对称 key 之外没有什么能解决我的问题...但问题是:如何将该 key 存储在我的 Java 代码中并保护它?

最佳答案

如果不从外部来源(例如:用户、SMS 等)获取共享 secret (例如:密码),就不可能做到这一点。

每个人都可以访问您的整个程序。如果不使用外部信息,有人总是有可能发送伪造的数据包,看起来像是来自您的应用程序。

通常,您可以通过电子邮件或短信向用户发送一个验证字符串,然后他们可以将其输入到应用程序中。如果字符串仅在很短的时间内有效(例如 5 分钟),则它不必非常长。

要从这个字符串创建一个临时 key ,您可以对其进行哈希处理。然后,您使用这个临时 key 向服务器证明您就是您所说的那个人,并从服务器获取一个长期 key 并将其存储在安全的地方。

关于android - 保护应用程序中的对称 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750397/

相关文章:

azure-devops - Azure DevOps 任务作业之间的可变 secret issecret=true

azure - 在 Microsoft Azure 和 Team Foundation Server 上保证生产凭据/ secret 的安全

java - 如何实现BehaviorSubject + retrofit api调用

java - 模拟器上的 Android c2dm 服务器模拟器

C++ 控制台应用程序

django - 如何在 Django 中安全地存储第三方服务的密码?

java - 按钮未更新其文本

java - AutoCompleteTextView过滤器不显示过滤列表

c# - 加密密码的最佳方法是什么?

java - PBKDF2WithHmacSHA512 对比。 PBKDF2WithHmacSHA1