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