0

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

4

3 回答 3

2

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

于 2012-10-20T17:11:28.393 回答
0

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

此解决方案使用您的API IDAPI 机密和 UNIX 时间戳的MD5哈希,并在 HTTP 标头中传递。正如@Darin Dimitrov所说,MD5 是一种单向哈希,但可以通过一些关于哈希和蛮力技术的知识来反转。那里有更好的选择,例如AES,但这很简单,也是入门的好方法。实际上,这种身份验证方法与Mashery's Authentication使用的身份验证方法相同。


构建 RESTful API参考并包含完整的入门工具包,用于创建具有Auth MembershipAPI Usage Metering以及支持 .NET EF 数据库的 API。

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

于 2013-12-19T02:48:47.260 回答
0

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

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

于 2012-10-20T16:45:24.210 回答