2017-08-10 147 views
0

我想从Tomcat 6迁移到Tomcat 9. Tomcat 6中存在一个问题,即资源密码是纯文本。有没有方法在Tomcat 9中加密它们?tomcat server.xml加密密码

对资源的例子是:

<Resource name="jdbc/HasanDB" auth="Container" type="javax.sql.DataSource" 
       maxTotal="10" maxIdle="15" minIdle="3" initialSize="2" maxWaitMillis="10000" 
       removeAbondend="true" removeAbondendTimeout="300" 
       username="hasan" password="hasanpass" driverClassName="com.mysql.jdbc.Driver" 
       url="jdbc:mysql://localhost:3306/HasanDB"/> 

如果没有加密方法可用,可软件使用的Tomcat启动时喂密码?

回答

-1

Tomcat附带了一个允许我们加密密码的脚本。该脚本在Windows上称为digest.bat,在Linux上称为digest.sh,可在bin目录中找到。有了这个,我们可以指定我们想要使用的加密算法 - 在这里我们使用SHA-256 - 并且我们输入要加密的文本 CATALINA_HOME/bin/digest。[bat | sh] -a {algorithm} {明文密码} 示例: - CATALINA_HOME/bin> digest.sh -a sha-256 hasanpass

+0

此工具散列密码。但是当它们被哈希时,它们可以在Server.xml中使用,参见:https://wiki.apache.org/tomcat/FAQ/Password – Hasan

+0

它所做的只是在标准输出上打印结果。 – EJP

1

这甚至有它自己的部分in the Tomcat FAQ。基本上:密码的加密将是蛇油 - 你只能让人们稍微难以访问密码。

的常见问题给出了几个选项,我最喜欢它的一部分是他们认为可以轻松地定制,密码加密,实现所使用的加密方法:

XOR和ROT13是伟大的候选人这是因为他们的实力符合你实际得到的保护。

+0

我已经阅读过,但我不知道这是否适用于Tomcat 9(它可以有更好的方法),也不知道如何实现它。 – Hasan

+0

1)常见问题解答讲述的是普遍缺乏安全性的问题,这是不变的。它只*看起来像它更安全,但你应该担心别的东西。 2)“如何实现* it *” - 您在讨论FAQ中的哪些非推荐选项? 3)一个简单的方法,只需编码一个密码可以在这个问题的答案中找到:https://stackoverflow.com/questions/16194052 –

+0

我已经做了实现,但它不读取方法setKeystorePass – Hasan