2013-03-13 66 views
0

我目前正在尋找使用bCrypt來加密我的項目中未來用戶的密碼。檢查使用bCrypt加密的密碼。是否需要通過電線發送密碼?

它看起來非常強大,但這裏是我的關心 -

  • 在網站上,創建一個帳戶。服務器將b密碼並存儲它的散列。 test - >$2a$12$4PhCN62AmALB7e.Sv2w9w.AP/JZ28l.dZldU5iHyupY2w5wPz9o.u
  • 現在檢查您的密碼,您只需檢查返回BCrypt.Net.BCrypt.Verify("test", "$2a$12$4PhCN62AmALB7e.Sv2w9w.AP/JZ28l.dZldU5iHyupY2w5wPz9o.u")以確保匹配。

在使用客戶端應用程序來處理此Web服務器和相同的數據的情況下,是否需要通過電線發送密碼以使服務器匹配它的有效性?客戶端請求散列並讓服務器將它發送給客戶端是否可行,這樣客戶端可以執行散列並驗證它?

+0

你如何讓客戶驗證自己的密碼? – Blender 2013-03-13 01:42:47

+0

@Blender - 如果Web服務器向客戶端發送期望的哈希,客戶端可以檢查輸入的密碼是否與哈希匹配。我錯了嗎? – The1nk 2013-03-13 01:45:18

+3

什麼阻止客戶說謊? – Blender 2013-03-13 01:45:43

回答

3

您可以通過使用SSL(例如https)阻止通過線路發送明文密碼。密碼將是明文,但連接將是安全的,並且只有服務器和客戶端才能夠解碼該連接中的信息。

+2

SSH還是SSL?有很大的差異! – IDWMaster 2013-03-13 02:46:49

+0

@IDWMaster我不知道它們有什麼不同,只是它們的使用方式相似 – Patashu 2013-03-13 03:00:38

+1

有很大的不同。 SSL是Web瀏覽器中使用的技術,用於「保護」通信以「防止竊聽者」。它使用公私密鑰加密技術,並依賴受信任的根授權機構來驗證網站的身份。另一方面,SSH用於加密文件傳輸,保護GIT存儲庫,遠程訪問Linux終端。 – IDWMaster 2013-03-14 04:25:08