-1

我只是一个初学者开发人员,我这样做更多是为了练习我的技能。

我正在开发一个客户端服务器应用程序,其中服务器将托管游戏,客户端将使用用户名和密码登录。首先:一旦用户输入他们的 id 和密码,将其安全地发送给客户端的最简单方法是什么?我是否必须纠正自己的加密方法,或者是否有预先确定的协议可以使用 java 内置库轻松访问?我听说过 TLS 和 SSL,但不确定如何使用它们。

其次,出于安全目的,我当然不希望将存储在服务器上的密码保存为纯文本。相反,如果不存储密码,而是存储密码的哈希摘要,那就太好了。在文本文件中以便于比较。有没有一种产生哈希摘要的简单方法?

非常感谢您的帮助

4

1 回答 1

1

加密:如果你打算使用 HTTP 协议进行通信,你应该使用 HTTP over SSL。它为客户端和服务器之间传输的数据提供加密/解密。它还将帮助您避免诸如篡改、窃听、中间人攻击等
攻击。

如果您有自己的通信协议,则始终可以使用
RSA 等现有算法来生成密钥对。当用户登录时,让应用程序使用服务器密钥的公共部分加密密码,服务器将使用自己的私钥对其进行解密。

散列:对于散列,您可以使用 SHA-2。(也可以使用 MD5 和 SHA-1,但 SHA-2 更安全。)您可以将密码的哈希值存储在数据库中,并在用户登录时进行匹配。

于 2013-06-24T08:04:30.153 回答