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.
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.