Pegar conteudo campo senha criptografado em SHA no LDAP

Quando eu pego o conteúdo de um campo senha de uma conta do LDAP retorna assim: “[B@87gyre45”

Eu preciso comparar com a senha que é passada como parâmetro no método. Mas usando SHA no parâmetro que é passado, fica assim: “sha=Uj4epGeXEPF098yytte62GHW5MfA=”

Como faço para que as duas encriptações resultem em valor igual, para que eu possa validar a senha do usuário?

Daí eu ia usar algo assim:

if (pass.endsWith(SHA.encryptSha(senha))) {

Isso é porque o LDAP lhe retorna um array de bytes. Converta esse array de bytes (deve ter 20 bytes) para base-64 (você vai ter uma string de 28 caracteres, como

DUJpb+4nbeeWrsU96mh0zWdKD/8= ).

Isso é porque está retornando o array de bytes convertido para Base-64. Como Sha-1 tem 160 bits (20 bytes), então deveria aparecer (20 / 3 + 2) * 4 = 28 caracteres.
Mas deveria ser algo como “DUJpb+4nbeeWrsU96mh0zWdKD/8=” - dá a impressão que no seu exemplo está sobrando um caracter, talvez a letra U, não sei lhe dizer.

Eu estava precisando disso também. Conseguiu resolver?