我只是一名初学者,而且我正在更多地练习我的技能。
我正在开发一个客户端服务器应用程序,其中服务器将托管游戏,客户端将使用用户名和密码登录。 首先: 一旦用户输入他们的ID和密码,将这个安全地发送给客户端的最简单方法是什么?我是否必须使用自己的加密方法,或者是否有可以使用java内置库轻松访问的预定协议?我听说过TLS和SSL,但我不确定如何使用这些。
其次,出于安全考虑,我当然不希望将存储在服务器上的密码保存为纯文本。相反,如果不存储密码,则存储密码的哈希摘要,这将是很好的。在文本文件中,以便于比较。是否有一种简单的方法来生成哈希摘要?
非常感谢您的帮助
答案 0 :(得分:1)
加密: 如果要使用HTTP协议进行通信,则应使用HTTP over SSL。 它为客户端和服务器之间传输的数据提供加密/解密。它 还可以帮助您避免诸如篡改,窃听,中间人等攻击 攻击。
如果您有自己的通信协议,则可以始终使用现有算法 像RSA生成密钥对。当用户登录时,让应用程序加密 密码与服务器密钥的公共部分,服务器将使用它解密它 它自己的私钥。
散列: 对于散列,您可以使用SHA-2。 (也可以使用MD5和SHA-1,但SHA-2更安全。) 您可以将密码的哈希值存储在数据库中,并在用户时将其匹配 登录。