Java fornece uma classe Base64 para lidar com criptografia. Você pode criptografar e descriptografar seus dados usando os métodos fornecidos. Você precisa importar java.util.Base64 em seu arquivo de origem para usar seus métodos.
Esta classe fornece três codificadores e decodificadores diferentes para criptografar informações em cada nível. Você pode usar esses métodos nos níveis a seguir.
Codificação e decodificação básicas
Ele usa o alfabeto Base64 especificado por Java em RFC 4648 e RFC 2045 para operações de codificação e decodificação. O codificador não adiciona nenhum caractere separador de linha. O decodificador rejeita dados que contenham caracteres fora do alfabeto base64.
Codificação e decodificação de URL e nome de arquivo
Ele usa o alfabeto Base64 especificado por Java na RFC 4648 para operações de codificação e decodificação. O codificador não adiciona nenhum caractere separador de linha. O decodificador rejeita dados que contenham caracteres fora do alfabeto base64.
MIME
Ele usa o alfabeto Base64 conforme especificado na RFC 2045 para operações de codificação e decodificação. A saída codificada deve ser representada em linhas com no máximo 76 caracteres cada e usa um retorno de carro ' ' seguido imediatamente por um avanço de linha ' ' como separador de linha. Nenhum separador de linha é adicionado ao final da saída codificada. Todos os separadores de linha ou outros caracteres não encontrados na tabela alfabética base64 são ignorados na operação de decodificação.
Classes aninhadas de Base64
| Aula | Descrição |
|---|---|
| Base64.Decodificador | Esta classe implementa um decodificador para decodificar dados de bytes usando o esquema de codificação Base64 conforme especificado em RFC 4648 e RFC 2045. |
| Base64.Encoder | Esta classe implementa um codificador para codificação de dados de bytes usando o esquema de codificação Base64 conforme especificado em RFC 4648 e RFC 2045. |
Métodos Base64
| Métodos | Descrição |
|---|---|
| público estático Base64.Decoder getDecoder() | Ele retorna um Base64.Decoder que decodifica usando o esquema de codificação base64 do tipo Basic. |
| público estático Base64.Encoder getEncoder() | Ele retorna um Base64.Encoder que codifica usando o esquema de codificação base64 do tipo Basic. |
| público estático Base64.Decoder getUrlDecoder() | Ele retorna um Base64.Decoder que decodifica usando o esquema de codificação base64 de tipo seguro de URL e nome de arquivo. |
| público estático Base64.Decoder getMimeDecoder() | Ele retorna um Base64.Decoder que decodifica usando o esquema de decodificação base64 do tipo MIME. |
| público estático Base64.Encoder getMimeEncoder() | Ele retorna um Base64.Encoder que codifica usando o esquema de codificação base64 do tipo MIME. |
| public static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) | Ele retorna um Base64.Encoder que codifica usando o esquema de codificação base64 do tipo MIME com comprimento de linha e separadores de linha especificados. |
| público estático Base64.Encoder getUrlEncoder() | Ele retorna um Base64.Encoder que codifica usando o esquema de codificação base64 de tipo seguro de URL e nome de arquivo. |
Métodos Base64.Decoder
| Métodos | Descrição |
|---|---|
| byte público[] decodificação(byte[] src) | Ele decodifica todos os bytes da matriz de bytes de entrada usando o esquema de codificação Base64, gravando os resultados em uma matriz de bytes de saída recém-alocada. A matriz de bytes retornada tem o comprimento dos bytes resultantes. |
| byte público[] decodificação (String src) | Ele decodifica uma String codificada em Base64 em uma matriz de bytes recém-alocada usando o esquema de codificação Base64. |
| decodificação int pública (byte[] src, byte[] dst) | Ele decodifica todos os bytes da matriz de bytes de entrada usando o esquema de codificação Base64, gravando os resultados na matriz de bytes de saída fornecida, começando no deslocamento 0. |
| decodificação pública de ByteBuffer (buffer ByteBuffer) | Ele decodifica todos os bytes do buffer de bytes de entrada usando o esquema de codificação Base64, gravando os resultados em um ByteBuffer recém-alocado. |
| wrap InputStream público (InputStream é) | Ele retorna um fluxo de entrada para decodificar o fluxo de bytes codificados em Base64. |
Métodos Base64.Encoder
| Métodos | Descrição |
|---|---|
| codificação de byte público[](byte[] src) | Ele codifica todos os bytes da matriz de bytes especificada em uma matriz de bytes recém-alocada usando o esquema de codificação Base64. A matriz de bytes retornada tem o comprimento dos bytes resultantes. |
| codificação int pública (byte[] src, byte[] dst) | Ele codifica todos os bytes da matriz de bytes especificada usando o esquema de codificação Base64, gravando os bytes resultantes na matriz de bytes de saída fornecida, começando no deslocamento 0. |
| String pública encodeToString(byte[] src) | Ele codifica a matriz de bytes especificada em uma String usando o esquema de codificação Base64. |
| codificação ByteBuffer pública (buffer ByteBuffer) | Ele codifica todos os bytes restantes do buffer de bytes especificado em um ByteBuffer recém-alocado usando o esquema de codificação Base64. Ao retornar, a posição do buffer de origem será atualizada até o seu limite; seu limite não terá sido alterado. A posição do buffer de saída retornado será zero e seu limite será o número de bytes codificados resultantes. |
| envoltório OutputStream público (OutputStream os) | Ele envolve um fluxo de saída para codificação de dados de bytes usando o esquema de codificação Base64. |
| Base64.Encoder público semPadding() | Ele retorna uma instância do codificador que codifica de forma equivalente a esta, mas sem adicionar nenhum caractere de preenchimento no final dos dados do byte codificado. |
Exemplo Java Base64: codificação e decodificação básicas
import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getEncoder(); // Creating byte array bytebyteArr[] = {1,2}; // encoding byte array bytebyteArr2[] = encoder.encode(byteArr); System.out.println('Encoded byte array: '+byteArr2); bytebyteArr3[] = newbyte[5]; // Make sure it has enough size to store copied bytes intx = encoder.encode(byteArr,byteArr3); // Returns number of bytes written System.out.println('Encoded byte array written to another array: '+byteArr3); System.out.println('Number of bytes written: '+x); // Encoding string String str = encoder.encodeToString('JavaTpoint'.getBytes()); System.out.println('Encoded string: '+str); // Getting decoder Base64.Decoder decoder = Base64.getDecoder(); // Decoding string String dStr = new String(decoder.decode(str)); System.out.println('Decoded string: '+dStr); } } Saída:
Encoded byte array: [B@6bc7c054 Encoded byte array written to another array: [B@232204a1 Number of bytes written: 4 Encoded string: SmF2YVRwb2ludA== Decoded string: JavaTpoint
Exemplo Java Base64: codificação e decodificação de URL
import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getUrlEncoder(); // Encoding URL String eStr = encoder.encodeToString('http://www.javatpoint.com/java-tutorial/'.getBytes()); System.out.println('Encoded URL: '+eStr); // Getting decoder Base64.Decoder decoder = Base64.getUrlDecoder(); // Decoding URl String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded URL: '+dStr); } } Saída:
algoritmo k-nn
Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/
Exemplo Java Base64: codificação e decodificação MIME
package Base64Encryption; import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting MIME encoder Base64.Encoder encoder = Base64.getMimeEncoder(); String message = 'Hello,
You are informed regarding your inconsistency of work'; String eStr = encoder.encodeToString(message.getBytes()); System.out.println('Encoded MIME message: '+eStr); // Getting MIME decoder Base64.Decoder decoder = Base64.getMimeDecoder(); // Decoding MIME encoded message String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded message: '+dStr); } } Saída:
Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work