6

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

我以前从未研究过这种事情,我很迷茫。我确实找到了一篇很好的文章,解释了如何使用 Java创建密码哈希,并且我在tomcat 文档中找到了解释如何设置在领域中使用的哈希方案以及如何使用 tomcat 进行 SSL 的信息,以及用于从密码创建散列的JavaScript 库,但我不确定如何将所有部分放在一起,以及我需要哪些部分。

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

如果有人能消除我的困惑并告诉我安全传输和存储密码的正确方法是什么,我将不胜感激。

4

1 回答 1

3

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

永远不要在数据库中存储真实密码。仅存储使用适当安全(即不是 MD5)哈希函数制作的盐渍哈希。为每个哈希使用不同的盐。

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

于 2012-08-31T20:05:42.130 回答