PowerShell'de String'i Base64'e Nasıl Dönüştürürüm?


Son zamanlarda müşterim bizden string'i base64'e dönüştürme gereksinimi istedi. Bunun için PowerShell'i kullandık. Bu eğitimde size örneklerle farklı yöntemler kullanarak PowerShell'de string'i base64'e nasıl dönüştüreceğinizi göstereceğim.

PowerShell'de bir dizeyi Base64'e dönüştürmek için [System.Convert] sınıfını kullanabilirsiniz. İlk önce, [System.Text.Encoding]::UTF8.GetBytes($string) kullanarak dizeyi bir bayt dizisine dönüştürün, ardından onu [System.Convert]::ToBase64String($bytes) ile Base64'e kodlayın. Örneğin:

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

Bu, orijinal metnin Base64 kodlu dizesini üretecektir.

Base64 Kodlaması Nedir?

Base64 kodlaması, ikili verileri bir radix-64 temsiline çevirerek ASCII dize biçimine dönüştürmek için kullanılan bir yöntemdir. Bu, özellikle metni işlemek üzere tasarlanmış ortamlar üzerinde saklanması ve aktarılması gereken verileri kodlamak için kullanışlıdır.

PowerShell'de String'i Base64'e Dönüştürme

Şimdi. size örneklerle Powershell'de string'i Base64'e dönüştürmek için farklı yöntemler göstereyim.

Yöntem 1: [System.Convert] Sınıfını Kullanma

PowerShell'de bir dizeyi Base64'e dönüştürmenin en basit yöntemi [System.Convert] sınıfını kullanmaktır. Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:

Örnek

İşte bir örnek.

# 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

Bu örnekte:

  1. "Merhaba, New York!" dizesiyle başlıyoruz.
  2. Dizeyi UTF-8 kodlamasını kullanarak bir bayt dizisine dönüştürüyoruz.
  3. Daha sonra bayt dizisini [System.Convert]::ToBase64String kullanarak bir Base64 dizesine dönüştürürüz.

Yukarıdaki PowerShell betiğini çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:

PowerShell'de String'i Hashtable'a Dönüştür'e göz atın

Yöntem 2: [System.Text.Encoding] Sınıfını Kullanma

Dizeyi Base64'e dönüştürmenin başka bir yöntemi de kodlama ve dönüştürme işlemini gerçekleştirmek için doğrudan [System.Text.Encoding] sınıfını kullanmaktır.

Örnek

İşte bunun nasıl yapılacağına dair tam bir örnek.

# 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

Bu yöntem ilkine benzer ancak dizeden bayta dönüşümü açıkça işlemek için System.Text.Encoding kullanımını vurgular.

Yukarıdaki PowerShell betiğini çalıştırdıktan sonra aşağıdaki ekran görüntüsünde tam çıktıyı alacaksınız.

Yöntem 3: Özel İşlevi Kullanma

PowerShell'de mantığı yeniden kullanmak ve birden çok kodlamayı işlemek için özel bir işlev de oluşturabilirsiniz. İşte bunun nasıl yapılacağına dair bir örnek.

Örnek

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

Bu örnekte, ConvertTo-Base64 işlevi girdi olarak bir dize alır, onu bir bayt dizisine dönüştürür ve ardından onu bir Base64 dizesine kodlar. Bu işlev, tutarlı Base64 kodlaması için komut dosyalarınız genelinde yeniden kullanılabilir.

PowerShell'de String'i JSON'a Dönüştür'e göz atın

PowerShell'de Base64 Dizelerinin Kodunu Çözme

Base64 dizesinin kodunu orijinal biçimine geri döndürmek için [System.Convert] sınıfını tekrar kullanabilirsiniz, ancak bu sefer FromBase64String yöntemini kullanarak.

Örnek

İşte tam bir örnek.

# 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

Bu örnek, kodlama sürecini tersine çevirerek bir Base64 dizesinin kodunun nasıl orijinal metnine geri döndürüleceğini gösterir.

Aşağıdaki ekran görüntüsünü görebilirsiniz, yukarıdaki PowerShell betiğini VS kodunu kullanarak çalıştırdım.

Çözüm

Bir PowerShell geliştiricisi olarak bu gereksinimle çok sık karşılaşacaksınız ve bu, PowerShell'de dizeleri Base64'e dönüştürmenin yoludur. [System.Convert] sınıfını ve [System.Text.Encoding] sınıfını kullanmak gibi farklı yöntemler kullanarak nasıl yapılacağını anlattım ve ayrıca oluşturabilirsiniz. yeniden kullanmak için özel bir işlev. Ayrıca PowerShell'de base64 dizelerinin kodunun nasıl çözüleceğini de tartıştım.

Yine de bazı sorularınız mı var? Aşağıya yorum bırakmaktan çekinmeyin. En kısa sürede cevap vermeye çalışacağım.

İlgili makaleler