Glassfish 4 – JDBC Realm

Qual é a diferença entre o algoritmo de criptografia de senha e o Digest Algorithm no Glassfish 4? Como o algoritmo de criptografia de senha não pode ficar em branco, usei MD5 e, para Codificação, Hex. O Digest Algorithm está em branco, portanto, o padrão é SHA-256.

Mas se eu fiz um aplicativo de login simples com JAAS, e criar as tabelas, inserir um usuário e a senha for criptografada com MD5, o usuário não poderá efetuar login. Se eu criptografar a senha com SHA-256, o usuário poderá efetuar login.

Então, qual é o campo do algoritmo de criptografia de senha?

A documentação não é muito clara sobre este ponto, mas a minha interpretação é a seguinte. Isto é baseado no manual de referência Glassfish v4 .

O algoritmo de criptografia de senha determina como as senhas são criptografadas em seu database . Este é o parâmetro digestrealm-password-enc-algorithm . Você realmente quer ter este conjunto para algo, porque é claro que deixar as senhas em um database no claro é uma falha de segurança.

Quando alguém tenta autenticar, glassfish precisa de uma maneira de comparar o que foi submetido ao que está no database. Mas, como o último está trancado, precisa de uma chave para desbloquear. A criptografia (estritamente hashing) usada nessa chave é o que está definido no Digest Algorithm (parâmetro digest-algorithm ). O padrão é SHA-256 na v4 (antes, era MD5).

Então, qual é o campo do algoritmo de criptografia de senha?

Digest Algorithm é usado para criptografar / hash a solicitação de login, enquanto o algoritmo de criptografia de senha é usado para descriptografar a senha do database.

Mas se eu fiz um aplicativo de login simples com o JAAS, e crie as tabelas, insira um usuário e a senha seja criptografada com o MD5, o usuário não poderá efetuar login.

Coloque o MD5 no campo de criptografia de senha e deixe o Digest Algorithm em branco (por padrão, é sha-256 no GlassFish 4).