我有一个服务器和我的应用程序都使用的 key 。此 key 用于确保请求来自应用程序。服务器尚未注册用户,但用户可以通过此应用程序发送请求。
我找不到其他解决方案...我考虑过非对称 key ,Diffie-Hellman...但除了对称 key 之外没有什么能解决我的问题...但问题是:如何将该 key 存储在我的 Java 代码中并保护它?
最佳答案
如果不从外部来源(例如:用户、SMS 等)获取共享 secret (例如:密码),就不可能做到这一点。
每个人都可以访问您的整个程序。如果不使用外部信息,有人总是有可能发送伪造的数据包,看起来像是来自您的应用程序。
通常,您可以通过电子邮件或短信向用户发送一个验证字符串,然后他们可以将其输入到应用程序中。如果字符串仅在很短的时间内有效(例如 5 分钟),则它不必非常长。
要从这个字符串创建一个临时 key ,您可以对其进行哈希处理。然后,您使用这个临时 key 向服务器证明您就是您所说的那个人,并从服务器获取一个长期 key 并将其存储在安全的地方。
关于android - 保护应用程序中的对称 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750397/