Criptografar Senha

Boa tarde,

Alguém sabe porque ao criptografa uma string com a letra “u” o resultado é diferente das demais (nro de caracteres menor), o pior é que isso ocorre com palavras que tenham a letra “u” quando encriptografo a senha.

senha: i – senha criptografada – de7d1b721a1e0632b7cf04edf5032c8ecffa9f9a08492152b926f1a5a7e765d7 - nro caracteres: 64
senha: u – senha criptografada – bfe935e70c321c7ca3afc75ce0d0ca2f98b5422e008bb31c00c6d7f1f1c0ad6 - nro caracteres: 63
senha: a – senha criptografada – ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb - nro caracteres: 64

Fonte que gerou a saída acima:
public class testeSenha {

public static void main(String[] args) {
    try {
        String[] senha = {"i", "u", "a", ""};
        
        MessageDigest algoritmo = MessageDigest.getInstance("SHA-256");
        
        for (int i=0; i<3; i++) {
            algoritmo.update(senha[i].getBytes());
            String senhaEncriptada = new BigInteger(1, algoritmo.digest()).toString(16);
            System.out.println("senha: " + senha[i] + " -- senha criptografada -- " + senhaEncriptada + " - nro caracteres: " + senhaEncriptada.length() );
        }
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(testeSenha.class.getName()).log(Level.SEVERE, null, ex);
    }
}

}

O hash SHA-256 da letra u minúscula começa com zero, e isso provavelmente está sendo ignorado pelo BigInteger ou pelo toString() ( testei aqui: http://www.xorbin.com/tools/sha256-hash-calculator - digite u no campo “Data”).

Para pegar a String que representa esse hash, faça:

        for (int i=0; i<3; i++) {
            algoritmo.update(senha[i].getBytes());
            byte[] digest = algoritmo.digest();
            String senhaEncriptada = String.format("%064x", new java.math.BigInteger(1, digest));
            System.out.println("senha: " + senha[i] + " -- senha criptografada -- " + senhaEncriptada + " - nro caracteres: " + senhaEncriptada.length() );
        }

Conforme visto aqui: http://stackoverflow.com/questions/3103652/hash-string-via-sha-256-in-java

Abraço.