Codificador / descodificador Base64

Codifique e descodifique Base64, Base64URL, Base32 e hexadecimal — texto ao vivo enquanto escreve, ficheiros por arrastar e largar — com um descodificador rigoroso o suficiente para lhe dizer a posição exata do primeiro caráter que não pertence, em vez de encolher os ombros. Tudo corre no seu navegador: as cadeias que as pessoas descodificam são tantas vezes tokens e segredos que enviá-las para um servidor, ou colá-las num chat de IA registado, é precisamente o que um descodificador nunca lhe deve pedir.

Ficheiros

Largue um ficheiro em qualquer ponto desta caixa para o codificar com o formato selecionado acima — obtém o texto codificado e um URL de dados pronto a usar. Ou cole aqui texto codificado e descarregue os bytes descodificados como um ficheiro.

Quatro alfabetos, um só trabalho

Os quatro formatos fazem o mesmo — escrever bytes arbitrários usando apenas caracteres seguros e imprimíveis — para públicos diferentes. O Base64 padrão é o formato por omissão dos anexos de correio, dos ficheiros de configuração e de milhares de API. O Base64URL troca os dois caracteres que quebrariam um URL (+ e /) por - e _, retira o preenchimento, e é o alfabeto dentro de cada JSON Web Token — descodifique um com o descodificador JWT e os três segmentos são neste formato. O Base32 usa um alfabeto mais pequeno e insensível a maiúsculas que sobrevive a ser lido em voz alta e redigitado, e é por isso que os segredos de autenticação TOTP são emitidos nele. O Hex duplica o tamanho e compra transparência total: um byte, dois caracteres, nada escondido — o formato dos hashes, que o gerador de hashes produz e o identificador de hashes reconhece.

O rigor é deliberado, e é a diferença entre um descodificador e uma ferramenta de depuração. Funções integradas do navegador como atob() lançam um único erro genérico tanto para uma cadeia com um erro de digitação na posição 4 como para uma que não é Base64 de todo. Este descodificador valida caráter a caráter e indica a primeira posição que falha — uma aspa arrastada do JSON, um + onde pertence o alfabeto seguro para URL, preenchimento encalhado no meio, ou um caráter final cujos bits restantes não são zero, o que significa que a cadeia foi editada depois de codificada. Noventa por cento dos mistérios de «isto não descodifica» tornam-se visíveis nessa única posição assim que alguém a aponta. E como o trabalho envolve tantas vezes credenciais — um segredo do Kubernetes é Base64 (uma codificação, nunca uma cifra), a carga de um token, uma chave num ficheiro de configuração —, toda a conversão acontece localmente, seguindo a mesma regra do validador .env: a entrada sensível nunca é transmitida. O artigo complementar, Base64 não é cifragem, desenvolve por que razão essa distinção importa.

Perguntas frequentes

O Base64 é uma forma de cifragem?

Não. O Base64 é uma codificação — uma mudança de roupa reversível, sem chave e sem segredo. Qualquer pessoa que veja uma cadeia Base64 pode descodificá-la instantaneamente, e é por isso que «a chave de API está codificada em Base64 na configuração» significa que a chave de API está, na prática, em texto simples na configuração. O artigo Base64 não é cifragem desemaranha codificação, cifragem e hash, e os erros que cada confusão produz.

Porque é que este descodificador me diz a posição exata de um erro?

Porque «caráter inválido» sem posição é a maneira de os descodificadores genéricos lhe fazerem perder a tarde. As cadeias coladas costumam falhar por uma de três razões: um caráter estranho do texto em redor (uma aspa, uma vírgula, uma linha de um registo), o alfabeto errado (uma cadeia segura para URL dada a um descodificador padrão) ou uma cópia truncada. Aqui o primeiro caráter infrator é nomeado com o seu índice, para que possa olhar para esse ponto exato e ver qual das três coisas aconteceu.

Qual é a diferença entre Base64 e Base64URL?

O alfabeto. O Base64 padrão usa + e /, que são caracteres estruturais nos URL, por isso o Base64 seguro para URL troca-os por - e _ e normalmente retira o preenchimento =. É essa a variante dentro de cada JWT. Dar uma variante ao descodificador da outra é a causa mais comum de uma falha de descodificação na posição do primeiro + ou / — esta ferramenta mantém os modos separados para que a mensagem de erro lhe possa dizer que foi isso que aconteceu.

É seguro descodificar aqui um token ou um segredo?

Sim — a conversão corre no seu navegador, nesta página, e nada do que colar é transmitido ou armazenado. Isso importa, porque as coisas que as pessoas descodificam são tantas vezes credenciais: um bloco Base64 num ficheiro de configuração, um segredo do Kubernetes (que é Base64, não cifragem — ver a pergunta acima), a carga de um token. Colar a mesma cadeia num chat de IA envia uma cópia para um sistema de terceiros com registo; ver nunca deixe um chatbot tratar dos seus segredos.

Porque é que o meu ficheiro descodificou como «não é UTF-8 válido»?

Porque é binário — uma imagem, um arquivo, qualquer coisa compilada — e binário não é texto. O descodificador de texto recusa em vez de lhe entregar caracteres corrompidos. Use a secção de ficheiros abaixo das caixas de texto: cole lá o Base64 e descarregue o ficheiro reconstruído com os bytes intactos.