Como converter um array de bytes para Base64
- Cole o array na entrada. A declaração inteira serve: nomes de tipo, nomes de variável, colchetes e ponto e vírgula são ignorados.
- O Base64 aparece na saída. Preenchimento (=) e Quebra de linha, abaixo da saída, controlam o formato.
- Use Copiar saída ou mude o menu Para para outro formato, como Hex ou Base64URL.
- Para transformar Base64 de volta em uma declaração na linguagem escolhida, use Base64 para array de bytes.
O que você pode colar
Cada linha abaixo dá SGkh, o Base64 dos três bytes H, i, !:
| Linguagem | Entrada |
|---|---|
| C, C++ | unsigned char d[] = {0x48, 0x69, 0x21}; |
| JavaScript | new Uint8Array([72, 105, 33]), Uint8Array.from([72, 105, 33]), Buffer.from([72, 105, 33]) |
| Python | b'Hi!', b'\x48\x69\x21', bytes([72, 105, 33]), bytearray(b'Hi!') |
| Java | new byte[]{72, 105, 33}, casts (byte) 0x48 |
| Go | []byte{0x48, 0x69, 0x21} |
| C# | new byte[] { 0x48, 0x69, 0x21 } |
| Rust | [0x48u8, 0x69, 0x21], vec![72u8, 105, 33] |
| Lista simples | 72, 105, 33 ou 72 105 33 |
Os valores podem ser decimais, hex com 0x, binários com 0b, octais com 0o ou literais de caractere ASCII como 'H'. Sufixos de tipo como u8, U e L são ignorados. Literais do Python são lidos com todas as regras de escape, incluindo \n, \t e escapes octais, e vários pedaços b'...' seguidos, como em um literal de várias linhas entre parênteses, são juntados.
Bytes com sinal e faixas de valores
O Java não tem byte sem sinal, então arrays impressos a partir de Java ou Kotlin contêm números negativos. O conversor lê de −128 a −1 como os bytes 0x80 a 0xff:
| Entrada | Bytes | Base64 |
|---|---|---|
{72, 105, -1} | 48 69 ff | SGn/ |
new byte[]{72, 105, (byte) 0xff, -1} | 48 69 ff ff | SGn//w== |
[-34, -83, -66, -17] | de ad be ef | 3q2+7w== |
Qualquer valor acima de 255 ou abaixo de −128 interrompe a conversão, com o valor e a posição indicados. Números com zero à esquerda, como 072, são lidos como o decimal 72, e não como o octal 58 do C, o que corresponde ao que a maioria das pessoas quer dizer ao colar uma lista de valores de bytes.
Formatos que esta página não lê
- A saída de console
<Buffer 48 69 21>do Node. Esses valores são hex sem0x, e o conversor os leria como decimais. Copie a parte entreBuffere>para Hex para Base64. - Strings C entre aspas, como
"Hi!". Use Texto para Base64 para texto ou escreva os bytes como array. - Objetos JSON como
{"type":"Buffer","data":[72,105,33]}. Cole só a parte[72,105,33], aqui ou em Decimal para Base64.
Array de bytes para Base64 no código
String b64 = java.util.Base64.getEncoder().encodeToString(new byte[] {72, 105, 33}); // "SGkh"
string b64 = Convert.ToBase64String(new byte[] { 0x48, 0x69, 0x21 }); // "SGkh"
import base64
base64.b64encode(bytes([72, 105, 33])).decode() # 'SGkh'
btoa(String.fromCharCode(...new Uint8Array([72, 105, 33]))); // 'SGkh'
O operador spread passa cada byte como um argumento separado, então falha com arrays grandes: no Node 24, ele lança Maximum call stack size exceeded em algum ponto entre 125.000 e 200.000 elementos, e o limite muda de um motor para outro. Para dados grandes, Buffer.from(arr).toString("base64") no Node ou arr.toBase64() nos navegadores atuais evitam o problema; veja Uint8Array.toBase64. Mais sobre cada linguagem: Java, C#, Python, JavaScript.
Perguntas frequentes
Como converter um byte[] para Base64 em Java?
java.util.Base64.getEncoder().encodeToString(bytes). Para conferir um array fixo no código, cole aqui a declaração inteira new byte[] { ... }, com casts e valores negativos.
Posso colar um literal bytes do Python?
Pode. b'Hi!', b'\x48\x69\x21', escapes octais como \041, bytes([72, 105, 33]) e vários literais divididos em linhas funcionam.
Por que aparece "não cabe em um byte"?
Algum valor está acima de 255 ou abaixo de −128. Muitas vezes o array é na verdade de inteiros de 16 ou 32 bits, como short[] ou int[], que precisam antes ser divididos em bytes em uma ordem de bytes escolhida.
Números sem 0x são lidos como hex?
Não. Um 48 sozinho é o decimal 48. Valores hex precisam do prefixo 0x; ou cole-os em Hex para Base64, que lê hex sem prefixo.