2013-06-24 165 views
-1

我只是一名初学者开发人员,我正在更多地练习我的技能。安全地传输和存储密码

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

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

非常感谢您的帮助

+0

使用Spring安全性。 –

回答

1

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

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

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