O meu problema é o seguinte, participo de um projeto no qual estamos tentando criar a nossa própria codificação em base 64, que é a seguinte:
public static String encodeNumeroSeguranca(String nsec) {
char[] array = nsec.toCharArray();
StringBuilder palavraCodificada = new StringBuilder();
for (int i = 0; i < array.length; i++) {
switch (array[i]) {
case '0': palavraCodificada.append("Num correspondente"); break;
case '1': palavraCodificada.append("Num correspondente"); break;
// Resto da codificação
case '+': palavraCodificada.append("Num correspondente"); break;
case '/': palavraCodificada.append("Num correspondente"); break;
default: break;
}
}
return palavraCodificada.toString();
}`
Conseguimos fazer a codificação sem problemas e conseguimos a representação em bytes do número de segurança (o que estamos querendo codificar) do seguinte modo:
`public static void main(String args[]) throws IOException {
String retorno = encodeNumeroSeguranca("Numero de Seguranca");
System.out.println("Palavra Codificada: \n" + retorno);
String aux;
byte codificacao[] = new byte[256]; //Tamanho em bytes que ficará a codificação
int inicio, fim;
for (int i = 0; i < codificacao.length; i++) {
inicio = i * 8;
fim = inicio + 7;
aux = retorno.substring(inicio, fim); // Conseguindo os 8 bits para formar um byte
codificacao[i] = Byte.parseByte(aux, 2);
}`
Porém, preciso fazer o inverso, preciso ler os bytes e transformar na representação exata de bits que tinha anteriormente, mas tentei vários métodos e não consegui achar nada que me desse alguma resposta certa. Alguma indicação ou ajuda pra me poder fazer o decode() ?
Agradeço, desde já.