我对密码学还是很陌生,所以请原谅任何新手错误。我确信这已被问过几次,但我不知道要搜索什么。
所以,我有一个服务器,它通过 http 从我的智能手机接收命令。目前,所有内容都使用 AES 和密码加密,可以在服务器的配置中设置。
问题是,当有人拦截我的请求时,他无法解密命令,但他可以将加密的命令重新发送到我的服务器。
我想象的两个解决方案是:
- 加密命令中的时间戳,因此它们在一段时间后无效,但缺点是仍然(在该期间内)可以重新发送命令。
- 服务器向客户端发送一些随机内容,客户端必须对其进行加密并将加密的内容发回(我认为这会杀死我的 http 方法)
我确信有更好的方法(也许是另一种算法?),欢迎提供任何帮助。
同样,我在密码学方面没有太多经验,编程只是一种爱好:D