Alias, tem mais um probleminha com essa implementacao: a String de retorno vai estar totalmente truncada, caso voce tente dar um System.out.println() nela.
Uma maneira de resolver este problema seria fazer o seguinte:
public String encode(String message) {
byte[] bytes = message.getBytes();
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(bytes);
return new BigInteger(1, md.digest()).toString(16);
}
[quote=“cv”]Alias, tem mais um probleminha com essa implementacao: a String de retorno vai estar totalmente truncada, caso voce tente dar um System.out.println() nela.
Uma maneira de resolver este problema seria fazer o seguinte:
public String encode(String message) {
byte[] bytes = message.getBytes();
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(bytes);
return new BigInteger(1, md.digest()).toString(16);
}[/quote]
que isso? solução ‘não-use-por-favor’? Use encoding base64 q é mais padronizado que tamanho de papel-higiênico.
Outra coisa, passe explicitamente um charset quando chamar o getBytes e construir tua String senão vai dar problema.
[quote=“louds”]
que isso? solução ‘não-use-por-favor’? Use encoding base64 q é mais padronizado que tamanho de papel-higiênico.
Outra coisa, passe explicitamente um charset quando chamar o getBytes e construir tua String senão vai dar problema.[/quote]
Acho intrigante sua sutiliza, hahahahahaha… :shock: :lol:
[quote=“Plud”][quote=“louds”]
que isso? solução ‘não-use-por-favor’? Use encoding base64 q é mais padronizado que tamanho de papel-higiênico.
Outra coisa, passe explicitamente um charset quando chamar o getBytes e construir tua String senão vai dar problema.[/quote]
Acho intrigante sua sutiliza, hahahahahaha… :shock: :lol:[/quote]
Sutileza de uma segunda feira. E eu tava xingando somente o cv, todos aqueles que se sentiram também ofendidos devolvam sua parte da ofença para ele.
Vou me explicar agora.
Isso é a forma mais #%$@#$ de fazem enconding de 1 vetor de bytes para String. Melhor usar base64 como eu falei, google por “+base64 +java”, usa menos espaço, menos cpu e todo mundo conhece.
Quando a usar getBytes() e new String(bytes), isso é 1 grande problema da linguagem java pq a conversão acontece segundo o charset da plataforma, que muda muito de plataforma, windows leste-europeu e windows eua), ou seja, passe 1 charset sempre ou voce pode acabar com 1 desagravel surpresa.