Os seus dados são 100% privados -- o Base64 é codificado e descodificado integralmente no seu dispositivo.
Base64 é uma forma de representar dados binários como texto simples usando 64 caracteres ASCII: A–Z, a–z, 0–9, mais + e /. Permite que dados binários como imagens, chaves e anexos de e-mail circulem com segurança por sistemas criados para texto. É codificação, não encriptação.
O Base64 utiliza um alfabeto fixo de 64 caracteres. Cada valor de 0 a 63 corresponde exactamente a um deles, e é assim que 3 bytes de dados binários se transformam em 4 caracteres legíveis:
| Valores | Caracteres | |
|---|---|---|
| 0–25 | A–Z | 26 letras maiúsculas |
| 26–51 | a–z | 26 letras minúsculas |
| 52–61 | 0–9 | 10 dígitos |
| 62–63 | + / | 2 símbolos |
O sinal "=" é a única excepção. É preenchimento, não um dos 64 valores, e apenas arredonda o último bloco.
Certamente já o encontrou antes. O Base64 aparece sempre que dados binários precisam de circular dentro de texto:
Este truque de data URI tem o seguinte aspecto. A longa cadeia de caracteres é a imagem completa:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />Os primeiros protocolos de rede foram criados para texto, não para bytes brutos. O ASCII usava 7 bits e 128 caracteres, o que era suficiente para inglês mas não para binário. Alguns sistemas corrompiam caracteres de controlo ou reescreviam fins de linha (LF para CR + LF), corrompendo silenciosamente imagens e áudio em trânsito.
O Base64 contorna tudo isso emitindo apenas caracteres que todos os sistemas já reconhecem. Base16 e Base32 fazem o mesmo trabalho com alfabetos mais pequenos, mas o Base64 compacta mais dados por caractere mantendo a segurança. Foi por isso que venceu.
Todo o esquema é uma ideia repetida: pegar em 3 bytes (24 bits), reparti-los em quatro grupos de 6 bits e procurar cada grupo no alfabeto. Aqui está a palavra "Logto", codificada manualmente.
Passo 1. Converta cada caractere no seu binário de 8 bits:
| Caractere | Código ASCII | Binário |
|---|---|---|
| L | 76 | 01001100 |
| o | 111 | 01101111 |
| g | 103 | 01100111 |
| t | 116 | 01110100 |
| o | 111 | 01101111 |
Passo 2. Tome os primeiros três bytes, "Log", e rreparta esses mesmos 24 bits em quatro grupos de 6 bits:
Passo 3. Leia cada grupo de 6 bits como um número e consulte o número no alfabeto:
| Grupo de 6 bits | Valor | Caractere Base64 |
|---|---|---|
| 010011 | 19 | T |
| 000110 | 6 | G |
| 111101 | 61 | 9 |
| 100111 | 39 | n |
"Logto" tem 5 bytes, não é múltiplo de 3. Os dois últimos bytes, "to", deixam uma divisão de 6 + 6 + 4. Preencha esses últimos 4 bits com zeros para completar um grupo de 6 bits e adicione um "=" para completar o bloco de 4 caracteres:
Una os blocos:
"Logto" → TG9ndG8=Todas as linguagens incluem isto nativamente. No Node.js:
const text = 'Logto';
const base64 = Buffer.from(text).toString('base64');
console.log(base64); // TG9ndG8=Três regras decorrem desse processo, que vale a pena ter em mente:
Recorra ao Base64 quando dados binários precisam de passar por um canal exclusivamente de texto:
O que obtém em troca:
O Base64 padrão depende de três caracteres que colidem com o funcionamento de URLs, query strings e nomes de ficheiro: +, / e o preenchimento =. Coloque uma cadeia Base64 normal numa ligação e pode quebrar de formas silenciosas:
Pode aplicar percent-encoding (+ torna-se %2B, / torna-se %2F, = torna-se %3D), mas isso aumenta a cadeia e é fácil fazer dupla codificação por engano.
O Base64URL (RFC 4648 §5) resolve isto na origem: substitui + por -, substitui / por _ e remove o preenchimento =. O resultado pode ser inserido directamente num URL, parâmetro de consulta ou nome de ficheiro sem nada a escapar. Encontrá-lo-á em URLs, nomes de ficheiro e muitas APIs web.
const base64 = 'TG9ndG8=';
const urlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
console.log(urlSafe); // TG9ndG8O Base64 é uma representação, não um almoço grátis. Tenha três coisas em mente:
Não. É codificação reversível com um alfabeto público, pelo que qualquer pessoa pode descodificá-lo instantaneamente e não acrescenta qualquer confidencialidade. Encripte os dados sensíveis em vez disso.
O Base64 transforma cada 3 bytes em 4 caracteres, pelo que a forma codificada é sempre cerca de um terço maior do que os bytes originais.
São preenchimento que mantém a saída como múltiplo de 4 caracteres. Um "=" significa que a entrada tinha 2 bytes restantes; dois "=" significam que tinha 1; nenhum "=" significa que o comprimento já era múltiplo de 3 bytes.
O Base64URL é a mesma codificação com um alfabeto seguro para URL e nomes de ficheiro: - e _ substituem + e /, e o preenchimento = é normalmente removido. É comum em URLs, nomes de ficheiro e muitas APIs web.
Qualquer dado binário: imagens, PDFs, chaves, executáveis. O Base64 trabalha com bytes brutos, pelo que o tipo de conteúdo original não importa.
Não. A codificação e a descodificação são executadas inteiramente no seu navegador. Nada do que cola é enviado ou registado.