正确传输和保护用户的Web应用密码

Mal*_*iel 6 javascript java passwords tomcat hsqldb

我正在为我的Masters项目开发一个Web应用程序.它是教授管理学生项目的系统,它使用Java作为服务器端代码,使用HSQLDB作为数据库,使用JSP作为表示层,并在tomcat上运行.将存储的数据不包括任何敏感信息(学生ID,财务信息,没有类似的信息),但是用户名和密码是必需的,所以我想在学生使用密码的情况下自己保护密码我的应用程序,他们用于其他一些更重要的应用程序(即使我告诉人们不要这样做,这无疑会发生).

我以前从未考虑过这种事情而且我很丢失.我找到了一篇很好的文章,解释了如何使用Java 创建密码哈希,我在tomcat文档中找到了解释如何设置域中使用的哈希方案以及如何使用tomcat进行SSL的信息,以及用于从密码创建哈希的JavaScript库,但我不确定如何将所有部分组合在一起,以及我需要哪些部分.

如果我使用JavaScript库来散列密码并使用SSL进行登录步骤(之后我认为不必要,因为其他数据不需要保护),那么只在数据库中存储密码的散列版本,这就足够了?或者我还需要做更多的事情吗?我遇到了一个问题,其中答案讨论了PBKDF2和其他一些事情,但它让我更加困惑......如果我应该使用这些答案中提到的方案之一,我该怎么做呢?我没有在tomcat或其他文档中看到过对它们的引用,所以我不知道我是如何使用它们的...

如果有人能解决我的困惑并告诉我安全传输和存储密码的正确方法是什么,我会非常感激.

Bra*_*rad 3

SSL 负责保护整个传输层。您无需担心通过 HTTPS 发送的数据。

切勿将真实密码存储在数据库中。仅存储使用适当安全(即非 MD5)散列函数生成的加盐散列。为每个哈希使用不同的盐。

如果遵循这些原则,无论您使用什么组件,您都将拥有合理的用户名/密码存储机制。

  • 确保你_给你的哈希加盐_! (2认同)