Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确传输和保护用户';web应用程序的密码_Java_Javascript_Tomcat_Passwords_Hsqldb - Fatal编程技术网

Java 正确传输和保护用户';web应用程序的密码

Java 正确传输和保护用户';web应用程序的密码,java,javascript,tomcat,passwords,hsqldb,Java,Javascript,Tomcat,Passwords,Hsqldb,我正在为我的硕士项目开发一个web应用程序。这是一个教授管理学生项目的系统,它使用Java作为服务器端代码,使用HSQLDB作为数据库,使用JSP作为表示层,并在tomcat上运行。将要存储的数据不包括任何敏感信息(学生ID、财务信息等),但用户名和密码是必需的,因此我希望在学生为我的应用程序使用密码时保护密码本身,以防他们为其他更重要的应用程序使用密码(即使我告诉人们不要这样做,这无疑也会发生) 我以前从来没有研究过这类事情,我很迷茫。我确实找到了一篇好文章,解释了如何使用Java,我在解释如

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

我以前从来没有研究过这类事情,我很迷茫。我确实找到了一篇好文章,解释了如何使用Java,我在解释如何设置域中使用的哈希方案以及如何做,以及如何从密码创建哈希的文章中找到了信息,但我不确定如何将所有部分放在一起,以及我需要哪些部分确实需要

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


如果有人能澄清我的困惑,告诉我安全传输和存储密码的正确方法,我将不胜感激。

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

永远不要在数据库中存储真实密码。只存储使用适当安全(即不是MD5)散列函数生成的salt散列。对每个散列使用不同的salt


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

确保你对哈希进行了加密!@jtahlborn,是的!我怎么会忘记这一点。除了回答之外,谢谢!你可以通过存储每个密码使用的算法来验证存储。这允许你要在将来升级算法而不中断现有用户,您可能还需要指出,您不需要在客户端进行哈希运算(并且使用特定于用户的salt也无法真正工作)。以下是有关如何存储密码的详细信息: