Búsqueda de sitios web

¿Cómo convertir cadenas a Base64 en PowerShell?


Recientemente, mi cliente nos solicitó un requisito para convertir cadenas a base64. Usamos PowerShell para esto. En este tutorial, te mostraré cómo convertir cadenas a base64 en PowerShell usando diferentes métodos con ejemplos.

Para convertir una cadena a Base64 en PowerShell, puede usar la clase [System.Convert]. Primero, convierta la cadena en una matriz de bytes usando [System.Text.Encoding]::UTF8.GetBytes($string), luego codifíquela en Base64 con [System.Convert]::ToBase64String($bytes). Por ejemplo:

$string = "Hello, World!"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($string)
$base64String = [System.Convert]::ToBase64String($bytes)
$base64String

Esto producirá la cadena codificada en Base64 del texto original.

¿Qué es la codificación Base64?

La codificación Base64 es un método para convertir datos binarios a un formato de cadena ASCII traduciéndolos a una representación radix-64. Esto es particularmente útil para codificar datos que deben almacenarse y transferirse a través de medios diseñados para manejar texto.

Convertir cadena a Base64 en PowerShell

Ahora. déjame mostrarte diferentes métodos para convertir cadenas a Base64 en Powershell con ejemplos.

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

El método más sencillo para convertir una cadena a Base64 en PowerShell es utilizar la clase [System.Convert]. Así es como puedes hacerlo:

Ejemplo

Aquí hay un ejemplo.

# Original string
$string = "Hello, New York!"

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

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

# Output the Base64 string
$base64String

En este ejemplo:

  1. Comenzamos con la cadena "¡Hola, Nueva York!".
  2. Convertimos la cadena en una matriz de bytes usando codificación UTF-8.
  3. Luego convertimos la matriz de bytes en una cadena Base64 usando [System.Convert]::ToBase64String.

Ejecuté el script de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:

Consulte Convertir cadena en Hashtable en PowerShell

Método 2: usar la clase [System.Text.Encoding]

Otro método para convertir cadenas a Base64 es utilizar la clase [System.Text.Encoding] directamente para manejar el proceso de codificación y conversión.

Ejemplo

Aquí tienes un ejemplo completo de cómo hacerlo.

# Original string
$string = "PowerShell Base64 Encoding"

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

# Encode byte array to Base64 string
$base64String = [Convert]::ToBase64String($bytes)

# Output the Base64 string
$base64String

Este método es similar al primero pero enfatiza el uso de System.Text.Encoding para manejar la conversión de cadena a byte explícitamente.

Obtendrá el resultado exacto en la captura de pantalla siguiente después de ejecutar el script de PowerShell anterior.

Método 3: uso de funciones personalizadas

En PowerShell, también puede crear una función personalizada para reutilizar la lógica y manejar múltiples codificaciones. Aquí tienes un ejemplo de cómo hacerlo.

Ejemplo

function ConvertTo-Base64 {
    param (
        [string]$inputString
    )

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

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

    return $base64String
}

# Use the custom function
$encodedString = ConvertTo-Base64 -inputString "Custom Function Example"
$encodedString

En este ejemplo, la función ConvertTo-Base64 toma una cadena como entrada, la convierte en una matriz de bytes y luego la codifica en una cadena Base64. Esta función se puede reutilizar en todos sus scripts para una codificación Base64 consistente.

Consulte Convertir cadena a JSON en PowerShell

Decodificar cadenas Base64 en PowerShell

Para decodificar una cadena Base64 a su forma original, puede usar la clase [System.Convert] nuevamente, pero esta vez con el método FromBase64String.

Ejemplo

Aquí tienes un ejemplo completo.

# Base64 encoded string
$base64String = "SGVsbG8sIFdvcmxkIQ=="

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

# Convert byte array to original string
$originalString = [System.Text.Encoding]::UTF8.GetString($bytes)

# Output the original string
$originalString

Este ejemplo demuestra cómo decodificar una cadena Base64 a su texto original invirtiendo el proceso de codificación.

Puede ver la captura de pantalla a continuación. Ejecuté el script de PowerShell anterior usando código VS.

Conclusión

Como desarrollador de PowerShell, recibirá este requisito muy a menudo, y es cómo convertir cadenas a Base64 en PowerShell. He explicado cómo hacerlo usando diferentes métodos, como usar la clase [System.Convert] y la clase [System.Text.Encoding], y también puedes crear una función personalizada para reutilizarlo. También hablé de cómo decodificar cadenas base64 en PowerShell.

Aún así, ¿tienes algunas preguntas? No dudes en dejar un comentario a continuación. Intentaré responder lo antes posible.

Artículos relacionados