我有一個ASP.Net C#應用程序需要每5分鐘使用WebServices連接到外部API。是存儲和更新外部API密碼的最佳實踐
外部web服務的要求如下:
- 用戶名和密碼被要求
- 我必須傳輸與每個web服務請求
- 密碼的用戶名和密碼過期每90天,並且必須是在過期日期之前更改
- 密碼不能手動更改(由人工),我的應用程序必須連接到單獨的密碼更改Web服務才能更改密碼。
- 我的應用程序必須根據一組規則生成每個新密碼。
- 密碼永遠不能重複使用。
- SSL,證書和防火牆的IP限制是必需的
我已經建立了所有以前的,但我現在有一個問題。存儲當前密碼和歷史密碼的最佳做法是什麼?
明顯存儲明文密碼是一個不好的解決方案。我需要能夠讓我的web服務讀取密碼並在每個請求中傳輸它。我還需要能夠訪問所有的歷史密碼,以確保我新生成的密碼不重複。
理想情況下,我想將每個(加密的)密碼存儲在我的數據庫中,並在需要調用web服務時解密它。我應該遵循最佳做法嗎?我應該使用Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Cryptographer.EncryptSymmetric(..)來加密每個密碼嗎?
注意:不幸的是,我無法改變外部API的功能。我必須遵守所提供的規則。
棒在密碼的最後一個5位計數器,與數個月以來2010年? –