¿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)
$base64StringEsto 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
$base64StringEn este ejemplo:
- Comenzamos con la cadena
"¡Hola, Nueva York!". - Convertimos la cadena en una matriz de bytes usando codificación UTF-8.
- 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
$base64StringEste 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"
$encodedStringEn 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
$originalStringEste 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.


