Base64-Codierung in Windows PowerShell

  1. Über Base64
  2. Konvertieren zu und von Base64
Base64-Codierung in Windows PowerShell

Die Base64-Codierung ist eine der Methoden der Binär-zu-Text-Codierung, die Binärdaten in einem besser lesbaren Zeichenkettenformat darstellt.

Es gibt keine Windows PowerShell-nativen Befehle für die Base64-Konvertierung (ab PowerShell [Core] 7.1). Daher ist vorerst die direkte Verwendung der .NET-Bibliothek erforderlich. Dieser Artikel zeigt Ihnen die möglichen Methoden zum Konvertieren zu und von Base64 mithilfe von Windows PowerShell und der .NET-Bibliothek.

Über Base64

Technisch ausgedrückt wandelt die Base64-Codierung drei 8-Bit-Bytes in vier 6-Bit-Bytes um, die aus Bits mit den Nummern 0-63 bestehen, daher der Name Base64. Außerdem sind die decodierten Daten 3/4 so lang wie die ursprüngliche Zeichenkettensyntax.

Während die Base64-Codierungsmethode Klartext codieren kann, ist ihr eigentlicher Vorteil die Codierung nicht druckbarer Zeichen, die von Übertragungssystemen als Steuerzeichen interpretiert werden.

Daher müssen Sie immer explizit angeben, welche Zeichenkodierung die Base64-Bytes darstellen sollen.

Konvertieren zu und von Base64

Beim Konvertieren in Base64 müssen Sie zunächst eine Byte-Darstellung der Zeichenfolge erhalten, die Sie zu codieren versuchen, indem Sie die Zeichencodierung verwenden, die der Benutzer der Base64-Zeichenfolge erwartet.

Außerdem müssen Sie beim Konvertieren von FROM Base64 das resultierende Array von Bytes als Zeichenfolge interpretieren, wobei dieselbe Codierung verwendet wird, die wir zum Erstellen der Base64-Darstellung verwendet haben.

Die folgenden Beispiele unten konvertieren mithilfe der .NET-Bibliothek in und aus UTF-8-codierten Zeichenkettenformaten:

Umstellung auf Base64:

[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes('Motorhead'))

Ausgabe:

TW90b3JoZWFk

Konvertieren von Base64:

[Text.Encoding]::ASCII.GetString([Convert]::FromBase64String('TW90b3JoZWFk')) 

Ausgabe:

Motorhead

In diesem Artikel wurde die Base64-Codierung weiterhin als eine Reihe von Bytes definiert, die in ein ASCII-Zeichenkettenformat konvertiert werden. Mit Windows PowerShell und der .NET-Bibliothek können wir jedoch direkt in und aus anderen Zeichenkettenformaten wie Unicode oder UTF-8 konvertieren.

Um stattdessen nach und von UTF-16LE (“Unicode”) oder ASCII zu konvertieren, ersetzen Sie [Text.Encoding]::Unicode und [Text.Encoding]::ASCII für [Text.Encoding]::UTF8 bzw.

Beispielsyntax:

[Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("YmxhaGJsYWg="))
[Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("YmxhaGJsYWg="))
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Encoding