我正在做web服务。用户将能够使用不同asp.net项目上的表单创建用户帐户。因此,当用户输入密码信息时,我需要将其存储在数据库中。但是现在,当用户发送web服务的用户凭据时,出于安全目的,我需要向用户发送加密的密码。
现在,我们如何才能拥有相同的验证过程,以便我能够验证请求。
发布于 2012-03-05 14:41:38
您想要的是使用HTTPS连接将密码从用户安全地传输到服务器。以下是如何使用IIS scottgu link设置开发环境的说明。
HTTPS协议将处理加密和解密,而您只需在服务器端处理纯文本密码。
之后,在服务器端,计算密码的散列,并将其与存储在数据库中的散列进行比较。标准可用于此目的。
Jeff Atwood对存储和散列密码背后的问题-- coding horror link --有一个很好的解释。
发布于 2012-03-05 14:41:29
您可以使用System.Security.Cryptography;
对所需信息进行加密
看看下面的内容:
http://jakkaj.wordpress.com/2007/10/27/encrypting-and-securing-web-service-traffic-without-ssl/
请记住,您为提供不使用SSL/TLS的“加密”所做的任何操作都可能容易受到攻击
发布于 2012-03-05 14:41:42
如果用户的浏览器以任何方式知道如何加密你的密码,那么你就有点失去了意义,一个聪明的黑客就可以破解这种加密。
使用SSL将信息直接传递到您的应用程序实际上就是在做您所要求的事情,并且是公认的安全的接收密码的方式。您只需对照数据库中的加密版本进行检查。
你的应用程序收到原始密码(浏览器和服务器已经处理了加密/解密),然后你的应用程序对其进行加密,并在数据库中查找匹配项。
使用web服务完成此操作的另一种方式是使用单个登录步骤,该步骤返回一个即将过期的令牌,用于进一步通信。OAuth是最受欢迎的,所以你可以用谷歌搜索一下。
https://stackoverflow.com/questions/9568414
复制相似问题