Búsqueda de sitios web

¿Cómo convertir una cadena Base64 en una matriz de bytes en PowerShell?


Hoy estaba comprobando cómo convertir una cadena Base64 en una matriz de bytes en PowerShell. Probé varios métodos. En este tutorial, le mostraré cómo convertir una cadena Base64 en una matriz de bytes en PowerShell con ejemplos.

Para convertir una cadena Base64 en una matriz de bytes en PowerShell, puede utilizar el método FromBase64String de la clase System.Convert. Por ejemplo, dada una cadena Base64 $base64String="SGVsbG8gV29ybGQh", puede convertirla ejecutando $byteArray=[System.Convert]::FromBase64String($base64String). Este método decodifica la cadena Base64 en su matriz de bytes equivalente en PowerShell.

¿Qué es la codificación Base64 en PowerShell?

Base64 es un esquema de codificación de binario a texto que representa datos binarios en un formato de cadena ASCII. Se utiliza comúnmente para codificar datos para su transmisión a través de medios diseñados para manejar texto. Esta codificación ayuda a garantizar que los datos permanezcan intactos sin modificaciones durante el transporte.

Convierta una cadena Base64 en una matriz de bytes en PowerShell

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

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

La forma más sencilla de convertir una cadena Base64 en una matriz de bytes en PowerShell es mediante la clase System.Convert, que proporciona métodos integrados para dichas conversiones.

Ejemplo

Aquí hay un ejemplo simple para entender esto mejor:

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

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

# Output the byte array
$byteArray

En este ejemplo, la cadena Base64 "SGVsbG8gV29ybGQh" (que representa "¡Hola mundo!") se convierte en una matriz de bytes utilizando el método FromBase64String del System. Convertir clase. Este método decodifica la cadena Base64 en su matriz de enteros sin signo de 8 bits equivalente.

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

Lea ¿Cómo convertir una cadena en doble en PowerShell?

Método 2: uso de funciones personalizadas

También puede crear una función personalizada en PowerShell para convertir una cadena Base64 en una matriz de bytes en PowerShell.

Aquí hay un ejemplo:

Ejemplo

function Convert-Base64ToByteArray {
    param (
        [string]$Base64String
    )

    return [System.Convert]::FromBase64String($Base64String)
}

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

# Convert Base64 string to byte array using the custom function
$byteArray = Convert-Base64ToByteArray -Base64String $base64String

# Output the byte array
$byteArray

Esta función personalizada, Convert-Base64ToByteArray, toma una cadena Base64 como entrada y devuelve la matriz de bytes correspondiente. Este enfoque hace que el script sea más modular y más fácil de mantener.

Puede ver el resultado en la captura de pantalla a continuación después de ejecutar el script de PowerShell anterior.

Consulte Convertir cadena en Hashtable en PowerShell

Método 3: usar System.Text.Encoding

Para aquellos que necesitan manejar diferentes codificaciones de texto, la clase System.Text.Encoding se puede utilizar junto con las conversiones Base64. Este método es más avanzado y útil cuando se trata de varias codificaciones de caracteres.

Ejemplo

Aquí hay un ejemplo.

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

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

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

# Output the UTF8 string
$utf8String

En este ejemplo, después de convertir la cadena Base64 en una matriz de bytes, la matriz de bytes se convierte aún más en una cadena UTF8 usando la clase System.Text.Encoding. Esto puede resultar especialmente útil cuando se trata de datos de texto que necesitan volver a codificarse o procesarse.

Conclusión

En este tutorial, he explicado cómo convertir una cadena Base64 en una matriz de bytes en PowerShell utilizando varios métodos.

  • Usando la clase System.Convert()
  • Usando la función personalizada
  • Usando System.Text.Encoding

Artículos relacionados