【发布时间】:2014-05-06 18:36:54
【问题描述】:
我正在编写一个客户端服务器应用程序。客户端和服务器之间的通信使用 Java RMI。我已经设置 RMI 以便它使用SSLSockets,所以通信是安全的。但是现在我希望我的客户输入密码,密码需要发送到服务器并以安全的方式存储在那里。
问题一:这个密码发送的时候需要加密吗,还是
SSLSockets的使用就够了?问题 2:我正在考虑在服务器上使用哈希函数(如
SHA1)对其进行加密,然后将其与存储的值进行比较。问题 3:如何以安全的方式存储这些密码?我想将它们存储在本地。我应该创建一个数据库并存储加密的密码吗?这方面的常见做法是什么?
【问题讨论】:
-
对Q2的备注:不应在客户端计算哈希,因为这会使哈希成为必须知道才能成功登录的秘密。相反,客户端发送密码,服务器计算哈希并将其与存储的值进行比较。
-
当然,是的!我明白为什么,我要编辑我的问题
-
@Henry 另一个可行的选择是一次性会话密钥,但这可能有点过头了。
标签: java security encryption