# Codificar Base64 online (texto para Base64)

> Base64 é uma forma de representar dados usando apenas 64 caracteres seguros: letras, números, + e /. Esta ferramenta codifica o texto que você digitar em Base64, com suporte a acentos e emojis (UTF-8), e permite gerar a variante URL-safe.

- Endereço oficial: https://pradev.com.br/codificar-base64
- Categoria: Codificação e segurança
- Tipo: Codificador
- Atualizado em: 2026-09-30
- Autor: Leonardo Gaertner (https://pradev.com.br/sobre)
- Preço: grátis, sem cadastro. O processamento acontece no navegador de quem usa.

## Como usar

1. Digite ou cole o texto no campo de entrada.
2. Marque URL-safe se o resultado for entrar em uma URL ou em um token.
3. O Base64 aparece ao lado, atualizado a cada alteração. Clique em Copiar.

## Como funciona

O texto é convertido em bytes (UTF-8) e agrupado de 3 em 3 bytes. Cada grupo de 24 bits é dividido em quatro blocos de 6 bits, e cada bloco vira um dos 64 caracteres do alfabeto. Por isso o resultado é cerca de 33% maior que o original.

Quando o total de bytes não é múltiplo de 3, o final recebe um ou dois sinais de igual (=) como preenchimento. Na variante URL-safe, + vira - e / vira _, e o preenchimento é removido.

Base64 não é criptografia: qualquer pessoa consegue decodificar. Ele serve para transportar dados por canais que só aceitam texto, como JSON, e-mail e URLs, e não para proteger informações.

### Exemplo

```text
Texto: Olá
Bytes UTF-8: 4F 6C C3 A1
Base64: T2zDoQ==
URL-safe: T2zDoQ
```

## Em código

Para codificar e decodificar Base64 em código, o ponto de atenção é a codificação do texto: use UTF-8 para que os acentos voltem iguais.

```javascript
function codificarBase64(texto) {
  return Buffer.from(texto, 'utf8').toString('base64');
}

function decodificarBase64(base64) {
  return Buffer.from(base64, 'base64').toString('utf8');
}
```

_JavaScript. Node.js. O Buffer lê e escreve o texto em UTF-8._

```python
import base64


def codificar_base64(texto: str) -> str:
    return base64.b64encode(texto.encode("utf-8")).decode("ascii")


def decodificar_base64(b64: str) -> str:
    return base64.b64decode(b64).decode("utf-8")
```

_Python_

```php
<?php
function codificarBase64(string $texto): string
{
    return base64_encode($texto);
}

function decodificarBase64(string $b64): string
{
    $saida = base64_decode($b64, true); // true: recusa caracteres que não são Base64
    if ($saida === false) {
        throw new InvalidArgumentException('Base64 inválido');
    }
    return $saida;
}
```

_PHP_

## Perguntas frequentes

### Base64 é criptografia?

Não. Base64 é apenas uma codificação e qualquer pessoa pode reverter. Não use para esconder senhas ou dados sensíveis.

### Por que o Base64 fica maior que o texto original?

Porque cada 3 bytes viram 4 caracteres. O aumento é de aproximadamente 33%, mais o preenchimento no final, quando existir.

### Funciona com acentos e emojis?

Sim. O texto é convertido em UTF-8 antes de codificar, então acentos, cedilha e emojis são preservados ao decodificar.

### O que é Base64 URL-safe?

É uma variante em que + vira - e / vira _, e o preenchimento com = é removido, para o resultado poder ser usado em URLs e em tokens como JWT sem precisar de codificação extra.

## Guias

- [Base64 com acentos: como codificar e decodificar sem erro](https://pradev.com.br/guias/base64-com-acentos-utf8): Por que o btoa erra com acentos e emojis e como codificar e decodificar Base64 em UTF-8 e Base64URL em JavaScript, Python e PHP, com código testado.
- [Como validar a assinatura de um webhook com HMAC](https://pradev.com.br/guias/como-validar-assinatura-de-webhook-hmac): Aprenda a conferir a assinatura HMAC-SHA256 de webhooks em Node.js, Python e PHP, com código testado e os erros que fazem a validação falhar.

## Ferramentas relacionadas

- [Decodificar Base64](https://pradev.com.br/decodificar-base64): Decodifique Base64 para texto online, com suporte a UTF-8 e Base64 URL-safe. Grátis, direto no navegador, sem enviar seus dados.
- [Formatador JSON](https://pradev.com.br/formatador-json): Formate, indente, minifique e valide JSON online. Mostra a linha e a coluna do erro. Grátis, e o que você cola não sai do navegador.
- [Gerador de UUID](https://pradev.com.br/gerador-de-uuid): Gere UUID v4 aleatório com um clique: em lote, em maiúsculas, com ou sem hífens. Grátis, gerado no seu navegador.
- [Gerador de Senha](https://pradev.com.br/gerador-de-senha): Crie senhas fortes e aleatórias com o tamanho e os caracteres que quiser. Geradas no seu navegador, nunca enviadas nem armazenadas.
- [Decodificador JWT](https://pradev.com.br/decodificador-jwt): Decodifique um JWT online e veja header, payload e datas de exp, iat e nbf. O token não sai do navegador. Não verifica a assinatura.
- [Base64 de Arquivo](https://pradev.com.br/base64-de-arquivo): Converta imagem, PDF ou qualquer arquivo para Base64 ou data URI online, e Base64 de volta para arquivo. Com prévia de imagem. Grátis, no navegador.
