我拥有的是客户端服务器场景和有效负载(x)。
- 服务器生成 x 并对其进行加密:enc(x)
- enc(x) 被发送到客户端
- 客户端解密数据得到x
但是,我必须执行的限制是:
- 加密密钥和解密密钥必须不同
- 客户端不能有加密密钥
所以直接 RSA 是不可能的,因为你需要公钥和私钥来解密,而公钥可以让你加密它。
所以目标是双重的:让客户端能够解密一段数据,确保它来自已知的来源——但是让客户端无法生成自己的原始有效负载的加密版本。
理想情况下是 C#,但我可以接受类似的语言答案。
编辑:我被告知只需要私钥来解密而不是两个密钥 - 但是似乎没有办法让 .Net 中的 RSACryptoServiceProvider 做到这一点。