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