Búsqueda de sitios web

Cómo convertir bytes a cadenas Base64 en PowerShell


La codificación Base64 es una técnica común utilizada para representar datos binarios en un formato de cadena ASCII. Esto es particularmente útil cuando necesita codificar datos binarios para protocolos basados en texto como correo electrónico o JSON. En PowerShell, la conversión de bytes a una cadena Base64 se puede realizar de manera eficiente utilizando métodos .NET integrados. En este tutorial, le mostraré cómo convertir bytes a cadenas base64 en PowerShell usando diferentes métodos.

Para convertir bytes a una cadena Base64 en PowerShell, puede utilizar la clase System.Convert. Primero, cree una matriz de bytes y luego use [System.Convert]::ToBase64String($byteArray) para codificarla. Por ejemplo, $byteArray=[byte[]](1, 2, 3, 4, 5); $base64String=[System.Convert]::ToBase64String($byteArray); Salida de escritura $base64String.

Convertir bytes a cadena Base64 en PowerShell

Ahora, déjame mostrarte cómo convertir bytes de cadena Base64 en PowerShell usando los métodos siguientes.

Método 1: uso de la clase System.Convert

La mejor manera de convertir una matriz de bytes en una cadena Base64 en PowerShell es mediante la clase System.Convert. Este método es simple y aprovecha el poderoso marco .NET. Déjame mostrarte un ejemplo.

Ejemplo:

# Sample byte array
$byteArray = [byte[]](1, 2, 3, 4, 5)

# Convert byte array to Base64 string
$base64String = [System.Convert]::ToBase64String($byteArray)

# Output the Base64 string
Write-Output $base64String

En este ejemplo, primero creamos una matriz de bytes de muestra. Luego, usamos el método ToBase64String de la clase System.Convert para codificar la matriz de bytes en una cadena Base64. Finalmente, generamos la cadena Base64.

Aquí está el resultado en la captura de pantalla a continuación, después de ejecutar el script de PowerShell anterior usando el código VS.

Consulte Convertir cadena a doble en PowerShell

Método 2: leer un archivo y codificarlo en Base64

A veces, es posible que necesites leer el contenido de un archivo y convertirlo a una cadena Base64. Esto se puede hacer leyendo el archivo en una matriz de bytes y luego usando la clase System.Convert.

Aquí tienes un ejemplo para entenderlo mejor.

Ejemplo:

# Path to the file
$filePath = "C:\MyFolder\file.txt"

# Read the file into a byte array
$byteArray = [System.IO.File]::ReadAllBytes($filePath)

# Convert byte array to Base64 string
$base64String = [System.Convert]::ToBase64String($byteArray)

# Output the Base64 string
Write-Output $base64String

En este ejemplo, leemos el contenido de un archivo en una matriz de bytes usando el método ReadAllBytes de la clase System.IO.File. Luego, convertimos la matriz de bytes a una cadena Base64 usando el método ToBase64String.

Lea ¿Cómo convertir cadenas en Hashtable en PowerShell?

Método 3: codificar una cadena en Base64

Si tiene una cadena que desea codificar en Base64, primero debe convertir la cadena en una matriz de bytes. Esto se puede hacer usando el método GetBytes de la clase System.Text.Encoding.

Déjame mostrarte un ejemplo de cómo funciona esto.

Ejemplo:

# Sample string
$string = "Hello, World!"

# Convert string to byte array
$byteArray = [System.Text.Encoding]::UTF8.GetBytes($string)

# Convert byte array to Base64 string
$base64String = [System.Convert]::ToBase64String($byteArray)

# Output the Base64 string
Write-Output $base64String

Aquí, convertimos una cadena de muestra en una matriz de bytes usando codificación UTF-8. Luego, codificamos la matriz de bytes en una cadena Base64 usando el método ToBase64String.

Aquí está el resultado en la captura de pantalla siguiente después de ejecutar el script de PowerShell anterior.

Consulte ¿Cómo convertir cadenas a JSON en PowerShell?

Método 4: uso del cmdlet ConvertTo-Base64

Para aquellos que usan PowerShell Core (7.0 y versiones posteriores), hay un cmdlet integrado ConvertTo-Base64 que simplifica este proceso.

Aquí hay un ejemplo.

Ejemplo:

# Sample byte array
$byteArray = [byte[]](1, 2, 3, 4, 5)

# Convert byte array to Base64 string using ConvertTo-Base64
$base64String = $byteArray | ConvertTo-Base64

# Output the Base64 string
Write-Output $base64String

En este ejemplo, utilizamos el cmdlet ConvertTo-Base64 para codificar directamente una matriz de bytes en una cadena Base64.

Conclusión

En este tutorial, he explicado cómo convertir bytes a cadenas Base64 en PowerShell utilizando diferentes métodos. Sin embargo, recomiendo utilizar el método Usando System.Convert Class. Espero que esto ayude.

Artículos relacionados