Il problema sta quando passo da byte[] a stringa..non lo fa correttamente

codice:
  public String getFile() throws Exception {
        String file = "/prova.jpg";
        InputStream is = this.getClass().getResourceAsStream(file);
        int len = 0;
        byte[] data = new byte[128];
        StringBuffer sb = new StringBuffer();
        while ((len = is.read(data)) != -1) {
            sb.append(new String(data, 0, len));
        }
        is.close();
        return sb.toString();
    }
Poi l'encode lo faccio tranquillo...ma nel passaggio se perde qualcosa

Poi scusate l'ignoranza AES ?