2014-09-30 116 views
0

我想通過HTTP發送密碼。Javascript密碼哈希發送不安全

場景:

  1. 用戶輸入自己的用戶名和密碼的形式。
  2. 密碼被散列並通過用戶名發送到服務器。
  3. 服務器檢查密碼哈希和用戶名並驗證用戶。 (服務器也不知道明文密碼)

如果某人以某種方式攔截了驗證消息,他將獲得散列密碼和用戶名,並且他可能會登錄到該用戶的帳戶。根據服務器,實質上,散列密碼是密碼。

這是事情:我不在乎。很少有人會將數據劫持,即使如此,如果您的帳戶被盜,這並不是一個問題,您可以創建一個新帳戶。

問題:什麼是在JavaScript中散列用戶密碼的好方法?散列不能使用隨機鹽,因爲它需要被服務器識別。

我唯一關心的是用戶的純文本密碼被發現如果郵件被攔截。原因是明文密碼也可能被用來危害他人使用的其他服務,這些服務實際上可能包含重要信息。

編輯:澄清,問題主要是關於什麼哈希算法使用,如果有一個輕量級庫。

回答

0

如果安全性實際上不是問題,例如沒關係的人危害您的系統,並要鹽的唯一原因哈希是防止使用彩虹表,並從被確定的明文密碼,然後做到這一點:

  • 計算配備充分長鹽在服務器上的每個密碼,並將其存儲在服務器上(就像如何最系統通常存儲在數據庫中的密碼)

  • 送鹽給用戶以明文

  • 計算鹽醃哈希併發回

如果我正確地思考這個問題,這仍然會阻止使用彩虹表。

否則,只要去https? :P

+0

我想這與我所能得到的答案差不多,我最終做的只是半放棄和使用快速哈希函數,並將用戶名用作簡單鹽。 「推薦」散列算法在移動設備上花費了幾秒鐘的時間。 – mukunda 2014-10-01 23:23:32