@victo_java escreveu:
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("000000"); break; case '1': palavraCodificada.append("000001"); break; case '2': palavraCodificada.append("000010"); break; case '3': palavraCodificada.append("000011"); break; case '4': palavraCodificada.append("000100"); break; case '5': palavraCodificada.append("000101"); break; case '6': palavraCodificada.append("000110"); break; case '7': palavraCodificada.append("000111"); break; case '8': palavraCodificada.append("001000"); break; case '9': palavraCodificada.append("001001"); break; case 'a': palavraCodificada.append("001010"); break; case 'b': palavraCodificada.append("001011"); break; case 'c': palavraCodificada.append("001100"); break; case 'd': palavraCodificada.append("001101"); break; case 'e': palavraCodificada.append("001110"); break; case 'f': palavraCodificada.append("001111"); break; case 'g': palavraCodificada.append("010000"); break; case 'h': palavraCodificada.append("010001"); break; case 'i': palavraCodificada.append("010010"); break; case 'j': palavraCodificada.append("010011"); break; case 'k': palavraCodificada.append("010100"); break; case 'l': palavraCodificada.append("010101"); break; case 'm': palavraCodificada.append("010110"); break; case 'n': palavraCodificada.append("010111"); break; case 'o': palavraCodificada.append("011000"); break; case 'p': palavraCodificada.append("011001"); break; case 'q': palavraCodificada.append("011010"); break; case 'r': palavraCodificada.append("011011"); break; case 's': palavraCodificada.append("011100"); break; case 't': palavraCodificada.append("011101"); break; case 'u': palavraCodificada.append("011110"); break; case 'v': palavraCodificada.append("011111"); break; case 'w': palavraCodificada.append("100000"); break; case 'x': palavraCodificada.append("100001"); break; case 'y': palavraCodificada.append("100010"); break; case 'z': palavraCodificada.append("100011"); break; case 'A': palavraCodificada.append("100100"); break; case 'B': palavraCodificada.append("100101"); break; case 'C': palavraCodificada.append("100110"); break; case 'D': palavraCodificada.append("100111"); break; case 'E': palavraCodificada.append("101000"); break; case 'F': palavraCodificada.append("101001"); break; case 'G': palavraCodificada.append("101010"); break; case 'H': palavraCodificada.append("101011"); break; case 'I': palavraCodificada.append("101100"); break; case 'J': palavraCodificada.append("101101"); break; case 'K': palavraCodificada.append("101110"); break; case 'L': palavraCodificada.append("101111"); break; case 'M': palavraCodificada.append("110000"); break; case 'N': palavraCodificada.append("110001"); break; case 'O': palavraCodificada.append("110010"); break; case 'P': palavraCodificada.append("110011"); break; case 'Q': palavraCodificada.append("110100"); break; case 'R': palavraCodificada.append("110101"); break; case 'S': palavraCodificada.append("110110"); break; case 'T': palavraCodificada.append("110111"); break; case 'U': palavraCodificada.append("111000"); break; case 'V': palavraCodificada.append("111001"); break; case 'W': palavraCodificada.append("111010"); break; case 'X': palavraCodificada.append("111011"); break; case 'Y': palavraCodificada.append("111100"); break; case 'Z': palavraCodificada.append("111101"); break; case '+': palavraCodificada.append("111110"); break; case '/': palavraCodificada.append("111111"); 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á.
Mensagens: 1
Participantes: 1