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