2012-12-23 154 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,“密码恢复”是一个不错的听起来,但天真的功能规范;不幸的是它本质上是不安全的。密码重置*是*安全的(或至少可以)。但是,对于这个应用程序,安全性可能并不重要。 –