Búsqueda de sitios web

¿Cómo convertir una cadena Base64 en texto en PowerShell?


Recientemente, alguien del equipo de desarrollo de PowerShell me pidió que convirtiera la cadena Base64 en texto en Powershell. Le expliqué cómo hacer esto usando varios métodos. En este tutorial, le mostraré cómo convertir una cadena Base64 en texto en PowerShell con ejemplos.

Para convertir una cadena Base64 en texto en PowerShell, puede utilizar el método [System.Convert]::FromBase64String(). Este método decodifica la cadena Base64 en una matriz de bytes, que luego se puede convertir en una cadena de texto legible usando [System.Text.Encoding]::UTF8.GetString(). Por ejemplo, dada una cadena Base64 $base64String="SGVsbG8gV29ybGQh", puedes decodificarla con:

$bytes = [System.Convert]::FromBase64String($base64String)
$text = [System.Text.Encoding]::UTF8.GetString($bytes)
Write-Output $text

Esto mostrará "¡Hola mundo!".

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

La codificación Base64 es un método para codificar datos binarios en un formato de cadena ASCII traduciéndolos a una representación radix-64. Cada dígito Base64 representa exactamente 6 bits de datos. Esta codificación se usa comúnmente en varias aplicaciones, incluido el correo electrónico a través de MIME, el almacenamiento de datos complejos en XML o JSON y la incrustación de datos de imágenes en HTML o CSS.

Convertir cadena Base64 en texto en PowerShell

Ahora, déjame mostrarte cómo convertir una cadena Base64 en texto en PowerShell usando varios métodos con ejemplos.

Método 1: usar [System.Convert]::FromBase64String()

El mejor método para decodificar una cadena Base64 en PowerShell es utilizar el método [System.Convert]::FromBase64String(). Este método convierte la cadena codificada en Base64 nuevamente en una matriz de bytes, que luego se puede convertir en una cadena de texto legible.

Aquí hay un ejemplo.

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

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

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

# Output the text
Write-Output $text

En este ejemplo, la cadena Base64 SGVsbG8gV29ybGQh se decodifica a Hello World!.

Puede ver 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 ¿Cómo convertir archivos a Base64 en PowerShell?

Método 2: usar el módulo Base64

Ahora, déjame mostrarte otro método: usar el módulo Base64, que proporciona un enfoque más simplificado para codificar y decodificar cadenas Base64.

Primero, necesitas instalar el módulo si aún no lo has hecho:

Install-Module -Name Base64

Aquí tienes un ejemplo completo para entenderlo mejor.

# Import the Base64 module
Import-Module Base64

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

# Decode Base64 string
$text = $base64String | ConvertFrom-Base64

# Output the text
Write-Output $text

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

Método 3: uso de funciones personalizadas

También puede crear su propia función para decodificar cadenas Base64 en PowerShell. Esto puede resultar útil para agregar funciones adicionales o registros personalizados.

Aquí hay un ejemplo.

function Decode-Base64String {
    param (
        [string]$base64String
    )

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

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

    return $text
}

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

# Decode using custom function
$text = Decode-Base64String -base64String $base64String

# Output the text
Write-Output $text

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

Conclusión

En este tutorial, te mostraré cómo convertir una cadena Base64 en texto en PowerShell usando diferentes métodos, como usar [System. Convertir]:: FromBase64String(), usando el módulo Base64, etc. También he explicado cómo crear una función personalizada para convertir una cadena Base64 en texto en PowerShell.

Artículos relacionados