2015-04-28 32 views
2

我有一个MVC应用程序和一个API,我需要将自定义凭据对象从MVC应用程序传递到每个请求的API。我想加密Credentials对象,并将请求头中的请求发送给API。加密和JSON序列化对象

我该怎么做?

我发现了大量关于如何加密字符串的文章,但是没有用XML格式以外的格式加密对象。

+1

你有没有想过使用一个安全套接字(https等)来加密你的一切?如果内存为我服务,则头文件也会在此类调用中加密。 –

+0

您可以尝试使用'NewtonSoft.Json'将您的对象序列化为JSON,然后通过您需要的任何API和API代码中的反序列化发送。 –

+0

@如果你不想通过HTTPS发送,并且你可以控制API的工作,那么使用公钥/私钥对应该可以做到这一点(使你的序列化),@ MartinNoreke的答案将是最好的,如果API支持HTTPS 对象转换为JSON,然后使用公钥对字符串进行加密,发送到您的API,使用私钥进行解密,反序列化) – Sidewinder94

回答

0
  1. 使您的凭据对象Serializable
  2. 按照here所述将您的对象序列化为字符串。
  3. 加密字符串。

如果你坚持使用JSON序列可以使用thisthis例子。

0

这里的关键仅仅是将您的对象转换为字符串。正如你所说,你已经看到了这样的例子(加密字符串)。使用json.Net的DeserializeObject方法产生一个字符串,加密该字符串,然后在这里使用add方法; https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers%28v=vs.110%29.aspx将其追加到标题集合中。

在后端您只需解密,反序列化并前进。

请注意,正如使用类似HTTPS的注释中指出的那样是首选。为什么加密自己然后发送HTTP时,你可以使用一个协议,而不是你呢?

1

您的要求并不完全清楚,但听起来好像他们可能会遇到JSON Web Tokens.有许多不同平台的库可以为您处理必要的加密技术。使用JWT,重点在于令牌的身份验证和完整性,而不是保密。

如果你想实现你自己的方法,请按照教程中的加密字符串,因为JSON 的一个字符串。