MVC Web API参数加密

时间:2012-10-20 15:33:29

标签: c# asp.net-mvc-3 encryption access-token

我正在试图弄清楚如何加密和解密MVC3 WebAPI的数据。情况是:  我正在制作一个有用户注册的反馈应用程序,用户可以注册项目。  项目必须用作反馈外键(我的意思是必须将反馈分配给特定项目)。  问题是:我应该如何加密项目ID(它将是GUID)并在服务器端解密它。我应该使用MD5 +盐。我应该用什么盐?也许时间戳,但我应该如何通过这个时间戳?好吧,不知道从哪里开始,做什么。任何帮助,将不胜感激。  注意:我不需要授权访问API方法,我需要传递秘密参数(作为密钥)。

3 个答案:

答案 0 :(得分:2)

您可能只需要一个HTTPS吗? Body和HTTPS中的参数。为什么重新发明轮子?!

答案 1 :(得分:0)

如果您不使用身份验证来调用Web API方法,则可以使用共享密码加密数据。 AES是常用的对称密钥算法,用于加密/解密您可以使用的数据。这假设客户端和服务器必须共享一个共同的秘密。

MD5是一种散列(单向)算法。它不是加密算法。 MD5哈希的整个想法是它无法逆转。

答案 2 :(得分:0)

我撰写了一个开源项目并在此处记录:Build a RESTful API。也许这会让你朝着正确的方向前进。

此解决方案使用 API ID API密码 MD5 哈希值和UNIX时间戳,并传入HTTP标头。正如 @Darin Dimitrov 所述,MD5是一种单向哈希,但可以通过对哈希和蛮力技术的一些了解来反转。有更好的选项,如 AES ,但这很简单,是一个很好的入门方式。实际上,此身份验证方法与Mashery’s Authentication使用的方法相同。


Build a RESTful API引用并包含一个完整的入门套件,用于创建具有验证成员资格 API使用量计量的API以及支持.NET EF数据库。

对于测试服务,您可以使用RESTClient使用自定义标头执行HTTP调用,而不是使用Curl。