Como converter uma string em Base64 em JavaScript (Navegador e NodeJS)

A codificação em Base64 é uma maneira de converter qualquer texto/conteúdo para uma codificação que utiliza apenas 64 caracteres. Provavelmente você já deve ter se deparado com uma string destas por aí.

Muitos sites e aplicações web utilizam esta códificação para trocar dados entre páginas “ocultando” informações na URL. Porém, é bom lembrar que Base64 não é uma forma segura de criptografia. Mas se ele não é seguro quais as vantagens de utilizá-la? Bom, algumas:

  • Você pode converter caracteres que geram problemas na URL (ou em algum protocolo), como por exemplo: ?, & e “
  • Você pode simplesmente atrapalhar um pouco pessoas ficarem chutando ids em suas URLs
  • Você pode transferir dados binários codificados em Base64. Aliás, é assim que o protocolo HTTP lida com o upload de arquivos.

Utilizando Base64 no navegador (Internet Explorer 10 e acima):

O código abaixo pode ser copiado e colado dentro do Console do Chrome, para vê-lo executando.

Método cross-browser (pode ser utilizado no NodeJS também):

Em NodeJS:

Em NodeJS você pode utilizar Buffers para converter de uma codificação para outra. Por exemplo: