Como usar a codificação Base64 em PHP

2 de novembro de 2021 Off Por sudoroot

Neste artigo rápido, discutiremos os fundamentos da codificação base64 no contexto do PHP. Basicamente, veremos como você pode usar funções PHP para transformar dados no formato codificado em base64.

O que é codificação Base64?

Base64 é uma codificação de dados binários em ASCII. Cada caractere da string representa seis bits de informação. Efetivamente, ele representa os dados binários na representação da base 64. Verifique esta cartilha sobre sistemas numéricos e bases se precisar de uma atualização.

O principal uso da codificação Base64 é codificar dados binários em texto ASCII, quando você deseja transferir esses dados por meio de protocolos que são projetados especificamente para lidar com dados textuais. Isso garante que os dados permaneçam intactos enquanto são transportados. Especificamente, Base64 é usado para coisas como enviar e-mails e carregar dados binários em formulários HTML.

Outro uso comum da codificação Base64 é o hash. Obviamente, você não deve usar a própria codificação Base64 para gerar hashes, pois ela pode ser facilmente decodificada. Em primeiro lugar, você gera um hash com a ajuda de um algoritmo de hash como SHA e, em seguida, converte o hash resultante no formato codificado em Base64 para exibi-lo. É realmente fácil comparar duas somas de verificação codificadas em Base64 para integridade.

Na próxima seção, discutiremos as funções integradas de Base64 no PHP.

Funções Base64 em PHP

Existem duas funções principais no PHP que lidam com a codificação Base64. A base64_encodefunção permite codificar dados no formato MIME Base64. Por outro lado, a base64_decodefunção é usada para decodificar os dados codificados em MIME Base64.

Vamos examinar cada uma dessas funções em detalhes.

base64_encode

Vamos examinar a sintaxe da base64_encodefunção.

O único argumento que você precisa passar para a base64_encodefunção é a string de origem que você deseja codificar para MIME Base64.

Isso retorna uma string codificada em Base64. É importante observar que os dados codificados em Base64 ocupam cerca de 33% a mais de espaço na memória do que os dados originais.

base64_decode

Vamos examinar a sintaxe da base64_decodefunção.

O primeiro argumento são os dados codificados em Base64 que você deseja decodificar.

O segundo argumento é opcional, mas se você passar TRUE, ele executará uma verificação estrita. Isso significa que se os dados codificados em Base64 contiverem caracteres de fora do alfabeto em Base64, a função de decodificação retornará FALSE. Isso é útil para verificar a integridade da string codificada em Base64. Por outro lado, se quiser descartar caracteres inválidos silenciosamente, basta passar FALSE, que é o valor padrão.

Na decodificação bem-sucedida, a função retorna a string decodificada, caso contrário, ela retorna FALSE. É importante observar que a base64_decodefunção pode retornar dados binários se a string em questão estava no formato binário antes da codificação.

Como codificar e decodificar dados com MIME Base64

Nesta seção, veremos alguns exemplos para ver as funções Base64 em ação.

Codificar parâmetros de URL

Na maioria das vezes, você acabará usando a base64_encodefunção para codificar parâmetros que contêm URLs.

Vamos ver rapidamente como isso funciona com o exemplo a seguir.

Como você pode ver, se não usarmos a base64_encodefunção, o URL resultante será semelhante a https://www.example.com/redirect/http://www.example.com/some/other/url, que é inválido.

Soma de verificação codificada em Base64

Como discutimos anteriormente, a base64_encodefunção é útil ao converter dados binários em uma string ASCII.

Vamos dar uma olhada no exemplo a seguir.

No exemplo acima, a hash_hmacfunção retornaria dados binários com hash. Portanto, se você não usar a base64_encodefunção, será difícil exibir os dados binários resultantes.

Anexos de Email

Em PHP, ao enviar um e-mail com anexos de arquivo, você pode codificar o conteúdo do arquivo no formato codificado em Base64. Na verdade, se você estiver enviando anexos binários, é essencial codificar os dados do anexo em vez de enviá-los no formato bruto.

Vamos dar uma olhada no exemplo a seguir.

Como você pode ver, usamos a base64_encodefunção para codificar os dados binários da imagem antes de serem enviados como um anexo.

Desta forma, você pode usar funções Base64 em PHP para vários fins.

Conclusão

Neste artigo rápido, discutimos como você pode usar funções Base64 no desenvolvimento diário de PHP.