2011-06-10 37 views
2

我在寫一段開源客戶端軟件,可以代表用戶連接到Web服務。用戶輸入他的用戶名和密碼,並且軟件使用這些憑證進行連接。如何在開源軟件中安全地存儲用戶的密碼?

爲了方便起見,我有一個軟件選項來保存用戶的憑據,以便將來不需要再次輸入。

但是,由於這是開源的,我不確定如何以合理安全的方式存儲證書。它讓我覺得任何我用來加密密碼的方法都可以很容易地反轉並用於解密密碼。我意識到完美的安全是不可能的,但是有沒有比使用ROT13更好的做法?

+0

根據您的平臺,可能會有一個系統API以相對安全的方式存儲和檢索證書。 – zneak 2011-06-10 00:26:45

+0

如果你正在用僞隨機生成器編寫語言,你也可以這樣做:srand([random_number_generated_at_compile_time]); passwd + = rand()+ rand();.這並不安全,但我猜測它總比沒有好 – Maliafo 2016-10-31 10:32:20

回答

1

Pidgin開發者在開源客戶端中有一個相當不錯的treatment of saved passwords;相同的推理適用於Web服務客戶端。

內容提要:

  • 如果應用程序保存密碼本身,讓他們以純文本格式,並設置文件權限只能由用戶是可讀的。 (這表明設置文件很敏感!)
  • 提供與平臺密鑰環API(如the Windows Data Protection API)或密鑰環應用程序(如KeePass)集成的選項。
相關問題