2012-08-08 67 views
0

我想要一個安全地存儲用戶密碼的服務,同時還允許我的代碼檢索該密碼併爲外部API驗證用戶身份。有任何想法嗎?有沒有辦法安全地存儲用戶密碼,但是能夠訪問該密碼來驗證API?

感謝

+2

你不會retreive用戶的密碼,但訪問令牌,考慮的OAuth2 – Sammaye 2012-08-08 14:58:04

+0

當你需要有密碼?在任何時間或只有當用戶登錄時? – piotrek 2012-08-08 20:47:47

+0

這是一個在後臺運行的服務。所以在任何時候。 – edhedges 2012-08-08 20:48:32

回答

0

我會做的是以下幾點:

  1. 以明文密碼
  2. 使用鹽
  3. 哈希密碼,並使用SHA-1或類似的散列鹽算法
  4. 將散列作爲密碼存儲到數據存儲中

當用戶接着驗證重做步驟1-3,而不是將密碼存儲在數據存儲區中時,將其與數據存儲區中的哈希值進行比較,如果您有匹配項,則密碼是正確的。

或者,讓用戶註冊並獲得一個隨機字符序列的「密鑰」,讓他/她散列一次(無鹽)並將其發送到您的API,然後用鹽重新哈希,比較一下。

這一切都取決於它有多敏感。

// JaggenSWE

+0

事情是我需要他們的外部API的確切密碼。我的服務將在後臺運行並在特定條件下向他們發送通知。他們無法一直登錄。 – edhedges 2012-08-08 15:03:13

+0

@edhedges只要您允許外部服務使用用戶密碼,它就不再安全可靠 – Sammaye 2012-08-08 15:04:10

+0

但是,您是否實際上必須將密碼存儲爲明文? – JaggenSWE 2012-08-08 15:04:21

相關問題