【发布时间】:2021-10-16 09:56:59
【问题描述】:
我想加密 JSON 字符串并使用 webclient 发布。 我有一个要传递给 RESTFUL API 的 json 字符串。 但是,这里的问题是我已经在我的项目中编写了所有文件中的代码,如下所示
obj = new WebClient();
Result = objWebClient.UploadString(API_Url ,JsonData_String);
我不想去更改我项目的每个文件/控制器中的每个 webclient 请求,因为它需要做很多工作。我想将代码添加到集中位置,以便所有 webclient 方法都可以访问它。 那么我可以扩展 UploadString 方法并添加一些在 POST 之前加密代码的机制。如果不是,我该如何实现。
此外,我无法控制 API url 以使用 HTTPS。
【问题讨论】:
-
为什么不在 API url 上使用 HTTPS?
-
是的,我可以拥有,但 API url 不在我的控制范围内。感谢回复
-
Api url 在您的代码中;当然它在你的控制之下。如果你说 api 在服务器端不支持 https,那么让他们打开它;这很简单,没有理由不这样做。您甚至不必再为 ssl 证书付费。如果他们不这样做,那么我看不到 api 将如何理解您的加密数据,所以这不是一个解决方案,除非有人会努力升级 api 这样做(但你不会打扰,你会只需打开https)
-
从哪里获取 JSON 数据?我想您使用的是 Newtonsoft 的 JSON 库之类的东西。您可以编写一个包装类,通过 Newtonsoft 创建您的 JSON 字符串,但在它返回它之前,您对其进行加密。您的消息的接收者需要执行相同的操作,但顺序相反:解密然后调用 Newtonsoft。而且你需要考虑加密算法(RSA/AES)、密钥管理和密钥交换......
标签: c# encryption model-view-controller webclient rest