2012-12-23 116 views
2

所以,我和一個朋友正在編寫一個用於管理遊戲服務器的面板(在python/django中)。 每個客戶端也可以通過他們的遊戲服務器獲取MySQL服務器。我們目前所困擾的是客戶如何找出他們的MySQL密碼以及它將如何「存儲」。存儲MySQL密碼

密碼將隨機生成並提交給面板中的用戶,但是,我們顯然不希望它們以明文或可逆加密方式存儲,所以我們不確定如果客戶忘記密碼該怎麼辦。

重置密碼是我們試圖避免的,因爲某些客戶端可能會在遊戲服務器仍在嘗試使用它時重置密碼,這可能會導致損壞和崩潰。

什麼是安全的(但不犧牲客戶的易用性)方法呢?

+0

*「在面板中顯示給用戶」* && *「不希望它們以明文或可逆加密方式存儲」*我不明白。 –

+0

如果用戶忘記了密碼,但希望能夠以安全的方式恢復密碼,我們希望能夠恢復密碼。 – icebox3d

+2

不要以可恢復的方式存儲密碼。只需執行密碼重置並完成它。 –

回答

4

雖然這不是你要找的答案,你只有三種可能性

  • 店的密碼明文(啊!)
  • 存儲與可逆的加密,例如RSA(http://stackoverflow.com/questions/4484246/encrypt-and-decrypt-text-with-rsa-in-php)
  • 不存儲它;客戶端只能重置密碼,而不是觀看

第二種選擇是一種安全的方式,如RSA也用於通過您所選擇的銀行使用HTTPS協議中TLS加密;)

+1

我會選擇#3。通過僅允許重置,您可以完全消除可逆加密的密鑰存儲問題。重置密碼是一個完全解決的問題。 –

+0

完全「是」,但由於問題包括密碼*恢復* OPs定義...否:))) –

+0

IMNSHO,「密碼恢復」是一個不錯的聽起來,但天真的功能規範;不幸的是它本質上是不安全的。密碼重置*是*安全的(或至少可以)。但是,對於這個應用程序,安全性可能並不重要。 –