Codificación a Base64

Base64 es uno de los métodos de codificación y significa base 64.

Todavía se usa principalmente en correos electrónicos, software y API web.

En esta ocasión, presentaremos cómo convertir datos de texto a Base64 usando VBA.

Código fuente

'*-------------------------------------------------------------
'* Codificar texto en Base64
'*
'* @param text Valor de conversión
'* @return Datos en formato Base64
'*-------------------------------------------------------------
Public Function EncodeToBase64(ByRef text As String) As String

  ' Preparación del objeto
  Dim node As Object
  Set node = CreateObject("Msxml2.DOMDocument.3.0").createElement("base64")

  ' Codificación
  node.DataType = "bin.base64"
  node.nodeTypedValue = ConvertToBinary(text)

  ' Eliminar saltos de línea que no se pueden eliminar con la función y devolver
  EncodeToBase64 = Replace(node.text, vbLf, "")
End Function

'*-------------------------------------------------------------
'* Convertir cadena a datos binarios
'*
'* @param text Valor de conversión
'* @return Datos binarios
'*-------------------------------------------------------------
Public Function ConvertToBinary(ByRef text As String)

  ' Preparación del objeto
  Dim BinaryStream As Object
  Set BinaryStream = CreateObject("ADODB.Stream")

  ' Configuración del Stream
  With BinaryStream
    .Type = 2
    .Charset = "us-ascii"
    .Open
    .WriteText text
    .Position = 0
    .Type = 1
    .Position = 0
  End With

  ConvertToBinary = BinaryStream.Read
End Function

Prueba de ejecución

Ejecución

Public Sub execute()
    Debug.Print (EncodeToBase64("aaa"))
    Debug.Print (EncodeToBase64("aab"))
    Debug.Print (EncodeToBase64("aac"))
End Sub

Resultados

YWFh
YWFi
YWFj

Información adicional sobre Base64

Base64 es un método de codificación que utiliza solo 64 caracteres imprimibles para manejar datos multibyte y binarios en entornos de comunicación que no pueden manejar otros caracteres. Está especificado por MIME y se utiliza ampliamente en correos electrónicos que solo pueden manejar datos de 7 bits. Específicamente, utiliza 62 caracteres de A–Z, a–z, 0–9, dos símbolos (+, /) y el símbolo = para el relleno.

Base64 - Wikipedia

Como se menciona en la cita anterior, Base64 todavía se usa ampliamente, y también existen Base16, Base32, entre otros.

Dado que está especificado por MIME, se utilizará en VBA cuando el tipo MIME de la API especifique Base64.

#Excel #VBA