安全地传输和存储密码

时间:2013-06-24 07:21:49

标签: java security

我只是一名初学者,而且我正在更多地练习我的技能。

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

其次,出于安全考虑,我当然不希望将存储在服务器上的密码保存为纯文本。相反,如果不存储密码,则存储密码的哈希摘要,这将是很好的。在文本文件中,以便于比较。是否有一种简单的方法来生成哈希摘要?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

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

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