Erro de retorno

Pessoal, pq o erro: incompatible types em : return aMessageDigest; ???
mas aMessageDigest e do tipo byte, ai nao entendi…

import java.security.*;

public class Hash {
       private static String orig;
       private static byte[] msg;
       private static byte[] aMessageDigest;

public String setHash(String  osha) {

      MessageDigest md = MessageDigest.getInstance("SHA-1");
      orig = osha;
      msg = orig.getBytes();

      md.update(msg);

      aMessageDigest = md.digest();

  }
public byte getHash(){
       return aMessageDigest;
}
}

Na verdade, o erro está no fato do compilador estar esperando pelo retorno no método setHash que, em sua declaração, deveria retornar uma String. :wink:

Mas, eu coloquei String tb e deu erro…estranho…

Tenta isso aqui.

import java.security.*;

public class Hash {
       private static String orig;
       private static byte[] msg;
       private static byte[] aMessageDigest;

public void setHash(String  osha) {

      MessageDigest md = MessageDigest.getInstance("SHA-1");
      orig = osha;
      msg = orig.getBytes();

      md.update(msg);

      aMessageDigest = md.digest();

  }
public byte[] getHash(){
       return aMessageDigest;
}
}

P.S.: Olhe bem os tipos de retorno. A variável “aMessageDigest” é um byte[] e não apenas um byte.

faltou o [color=“red”]throws Exception[/color]
agora o throws Exception foi q não entendi…

valeu Daniel

[quote=“ozorro”]faltou o [color=“red”]throws Exception[/color]
agora o throws Exception foi q não entendi…

valeu Daniel[/quote]
Em algum ponto aí (provavelmente no método setHash(…) ) deve haver algum tipo de processamento que lance uma exceção. Para tanto, ou você a trata (jogando o seu código dentro de um bloco try…catch) ou você repassa esta exceção adiante (declarando que seu método joga uma certa exceção usando a cláusula throws BlablablaException).

Ok, valeu!!!