md5

3 respostas
Danilo_Carvalho

Tudo bem pessoal!!!

Seguinte, estou usando MD5 e me deparei com o seguinte problema, quando o primeiro caracter o 0 ele é desconsiderado e a String MD5 é inserida de forma errada no banco.

MessageDigest md = MessageDigest.getInstance("MD5");
			BigInteger hash = new BigInteger(1, md.digest(minhaClasse.getPasswd().getBytes()));
			minhaClasseUser.setPasswd(hash.toString(16));

Alguem ja passou por isso, e sabe se tem alguma coisa errada neste trecho de código acima, obrigado

Até mais.

3 Respostas

FabricioPJ

Veja se ajuda:

/**
     * Criptografa um determinado texto, usando o algori­tmo MD5.
     * Created by Fabricio Jorge
     * @param palavra
     * @return Uma <code>String</code> criptografada representando o texto.
     */
    public static String criptografiaMD5(String palavra){
        byte[] bytesSenha = palavra.getBytes();
        StringBuilder hexString = new StringBuilder();
        try{
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.reset();
            md.update(bytesSenha);
            byte[] senhaDigerida = md.digest();
            for(int i = 0; i < senhaDigerida.length; i++){
                hexString.append(Integer.toHexString(0xFF + senhaDigerida[i]));
            }
        }
        catch(Exception e){
            e.printStackTrace();
            hexString.delete(1, hexString.length() - 1);
        }

        return hexString.toString();
    }
Danilo_Carvalho

FabricioPJ beleza!

Vou testar aqui e te falo, por enquanto obrigado!

Até mais.

Danilo_Carvalho

Resolvi da seguinte forma,

String passwd = "senha";
			MessageDigest md = MessageDigest.getInstance("MD5");
			BigInteger hash = new BigInteger(1, md.digest(passwd.getBytes()));
			passwd = String.format("%1$032x", hash));
                        //%1$032x caixa baixa
                        //%1$032X CAIXA ALTA
Criado 12 de março de 2012
Ultima resposta 13 de mar. de 2012
Respostas 3
Participantes 2