簡體   English   中英

要加密的請求中的C#Web服務密碼

[英]C# web service password in the request to be encrypted

我正在開發Web服務。 用戶將能夠使用不同asp.net項目上的表單創建用戶帳戶。 因此,當用戶輸入密碼信息時,我需要存儲加密到數據庫中的信息。 但是現在當用戶通過Web服務發送用戶憑據時,我需要用戶發送該密碼以用於安全目的。

現在我們如何才能擁有相同的ecrption程序,以便我能夠驗證請求。

您想要的是使用HTTPS連接將密碼從用戶安全地傳輸到服務器。 以下是有關如何使用IIS為HTTPS設置開發環境的說明 - scottgu鏈接

HTTPS協議將處理加密和解密,您只需處理服務器端的純文本密碼。

之后,在服務器端,您計算密碼的哈希值並將其與存儲在數據庫中的哈希值進行比較。 可以使用標准的ASP.NET SQL成員資格提供程序。

Jeff Atwood對存儲和散列密碼背后的問題有一個很好的解釋 - 編碼恐怖鏈接

您可以使用System.Security.Cryptography;加密所需的信息System.Security.Cryptography;

看看下面的內容:

http://jakkaj.wordpress.com/2007/10/27/encrypting-and-securing-web-service-traffic-without-ssl/

請記住,您提供的任何不使用SSL / TLS的“加密”都可能容易受到攻擊

如果用戶的瀏覽器以任何方式知道如何加密您的密碼,那么您就會失去意義,聰明的黑客可以提取該加密。

使用SSL將信息直接傳遞到您的應用程序基本上是在做您所要求的,並且是接受密碼的可接受的安全方式。 您只需要檢查數據庫中的加密版本。

您的應用程序接收到原始密碼(瀏覽器和服務器已負責加密/解密),然后您的應用程序對其進行加密並在數據庫中查找匹配項。

使用Web服務完成此操作的另一種方法是使用單個登錄步驟,該步驟返回用於進一步通信的過期令牌。 OAuth是最受歡迎的,所以做一些谷歌搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM