Apache 如何在Tomcat 7.0.52中防止哈希密码登录?

Apache 如何在Tomcat 7.0.52中防止哈希密码登录?,apache,tomcat,hash,cryptography,webserver,Apache,Tomcat,Hash,Cryptography,Webserver,我使用的是Tomcat 7.0.52服务器,并在Tomcat-users.xml中使用哈希密码 我的服务器正在接受使用纯文本密码和哈希密码的登录 如何防止/阻止用户使用哈希密码登录,并强制他们使用明文密码 以下文件的片段 web.xml: <login-config> <auth-method>DIGEST</auth-method> <realm-name>testvalue</realm-name> </login-confi

我使用的是Tomcat 7.0.52服务器,并在Tomcat-users.xml中使用哈希密码

我的服务器正在接受使用纯文本密码和哈希密码的登录

如何防止/阻止用户使用哈希密码登录,并强制他们使用明文密码

以下文件的片段

web.xml:

<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>testvalue</realm-name>
</login-config>

消化
测试值
server.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" digest="SHA"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- Tomcat comment stuff trimmed out here -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="sha-512" saltLength="512" />
    </Realm>
</Realm>

tomcat-users.xml

<user username="testuser" password="xxxx--------------yyyy" roles="testrole"/>

我知道这并不是严格地回答您的问题,但我建议至少将tomcat升级到8.0的最新版本(发布时为8.0.48)。我从7升级到8已经有一段时间了,但如果记忆还可以的话,这是相当轻松的。应该具备向上迁移所需的所有知识。您需要注意的唯一一件事是它需要Java7或更高版本,即使这也不应该是一个大问题,除非您有一个特别的设置

Tomcat8.0.x下面的说明

这就是我的设置方式,我无法通过将哈希密码粘贴到密码字段来登录。我选择了sha-512,并任意选择512作为我的盐长度。你不必这么做,但为什么不呢

Tomcat 8-server.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" digest="SHA"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- Tomcat comment stuff trimmed out here -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="sha-512" saltLength="512" />
    </Realm>
</Realm>
这将产生一个非常长的密码哈希,格式如下:

youRcl3artextpa$sword:hashedpasswordforalongtime
复制分号后的所有内容,确保没有换行符。(如果需要,请在记事本中进行清理) 这是您的新哈希密码


我知道这并不是严格地回答您的问题,但我建议至少将tomcat升级到8.0的最新版本(发布时为8.0.48)。我从7升级到8已经有一段时间了,但如果记忆还可以的话,这是相当轻松的。应该具备向上迁移所需的所有知识。您需要注意的唯一一件事是它需要Java7或更高版本,即使这也不应该是一个大问题,除非您有一个特别的设置

Tomcat8.0.x下面的说明

这就是我的设置方式,我无法通过将哈希密码粘贴到密码字段来登录。我选择了sha-512,并任意选择512作为我的盐长度。你不必这么做,但为什么不呢

Tomcat 8-server.xml

<Realm className="org.apache.catalina.realm.MemoryRealm" digest="SHA"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- Tomcat comment stuff trimmed out here -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="sha-512" saltLength="512" />
    </Realm>
</Realm>
这将产生一个非常长的密码哈希,格式如下:

youRcl3artextpa$sword:hashedpasswordforalongtime
复制分号后的所有内容,确保没有换行符。(如果需要,请在记事本中进行清理) 这是您的新哈希密码


摘要就是散列。不清楚你在问什么,而且离题。摘要就是散列。不清楚你在问什么,离题。