Para quem vem aqui procurando informações sobre o Tomcat 8.0.15 ou mais recente, provavelmente deve usar o SecretKeyCredentialHandler com PBKDF2, pois é muito mais seguro (ou seja, mais difícil de quebrar) do que um simples resumo de mensagens.
Por exemplo, no seu server.xml:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
Com essa configuração, use o seguinte para gerar a saída em hash da sua senha:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
com a contagem da iteração e o tamanho do sal (em bytes) de sua escolha. Observe que o comprimento da chave precisa ser o mesmo definido no server.xml devido ao erro 60446 . No entanto, deve ser corrigido em breve a montante.
ATENÇÃO! Certifique-se de que sua senha não seja salva no histórico de comandos do seu shell. No bash, isso é alcançado precedendo o comando com um espaço vazio.
O comando produzirá sua senha em texto sem formatação e uma representação hexadecimal das credenciais resultantes, que você deve usar como atributo de senha em seu tomcat-users.xml.
A documentação para o componente CredentialHandler pode ser encontrada aqui . Os valores possíveis para o atributo do algoritmo podem ser encontrados aqui .
"sha-1"
ou"sha-256"
, se funcionar.