ค้นหาเว็บไซต์

วิธีแปลงสตริงเป็น Base64 ใน PowerShell


เมื่อเร็วๆ นี้ ลูกค้าของฉันขอให้เราระบุข้อกำหนดในการแปลงสตริงเป็น base64 เราใช้ PowerShell สำหรับสิ่งนี้ ในบทช่วยสอนนี้ ฉันจะแสดงวิธีแปลงสตริงเป็น base64 ใน PowerShell โดยใช้วิธีต่างๆ พร้อมตัวอย่าง

หากต้องการแปลงสตริงเป็น Base64 ใน PowerShell คุณสามารถใช้คลาส [System.Convert] ขั้นแรก แปลงสตริงเป็นอาร์เรย์ไบต์โดยใช้ [System.Text.Encoding]::UTF8.GetBytes($string) จากนั้นเข้ารหัสเป็น Base64 ด้วย [System.Convert]::ToBase64String($bytes) ตัวอย่างเช่น:

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

สิ่งนี้จะสร้างสตริงที่เข้ารหัส Base64 ของข้อความต้นฉบับ

การเข้ารหัส Base64 คืออะไร

การเข้ารหัส Base64 เป็นวิธีการแปลงข้อมูลไบนารี่เป็นรูปแบบสตริง ASCII โดยการแปลเป็นรูปแบบ Radix-64 สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเข้ารหัสข้อมูลที่จำเป็นต้องจัดเก็บและถ่ายโอนผ่านสื่อที่ออกแบบมาเพื่อจัดการข้อความ

แปลงสตริงเป็น Base64 ใน PowerShell

ตอนนี้. ฉันขอแสดงวิธีการต่าง ๆ ในการแปลงสตริงเป็น Base64 ใน Powershell พร้อมตัวอย่าง

วิธีที่ 1: การใช้คลาส [System.Convert]

วิธีที่ง่ายที่สุดในการแปลงสตริงเป็น Base64 ใน PowerShell คือการใช้คลาส [System.Convert] นี่คือวิธีที่คุณสามารถทำได้:

ตัวอย่าง

นี่คือตัวอย่าง

# 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

ในตัวอย่างนี้:

  1. เราเริ่มต้นด้วยสตริง "Hello, New York!"
  2. เราแปลงสตริงให้เป็นอาร์เรย์ไบต์โดยใช้การเข้ารหัส UTF-8
  3. จากนั้นเราจะแปลงอาร์เรย์ไบต์เป็นสตริง Base64 โดยใช้ [System.Convert]::ToBase64String

ฉันรันสคริปต์ PowerShell ข้างต้น และคุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

ตรวจสอบการแปลงสตริงเป็น Hashtable ใน PowerShell

วิธีที่ 2: การใช้คลาส [System.Text.Encoding]

อีกวิธีหนึ่งในการแปลงสตริงเป็น Base64 คือการใช้คลาส [System.Text.Encoding] โดยตรงเพื่อจัดการกระบวนการเข้ารหัสและการแปลง

ตัวอย่าง

นี่คือตัวอย่างที่สมบูรณ์ของวิธีการดำเนินการ

# 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

วิธีนี้จะคล้ายกับวิธีแรก แต่เน้นการใช้ System.Text.Encoding เพื่อจัดการการแปลงสตริงเป็นไบต์อย่างชัดเจน

คุณจะได้รับผลลัพธ์ที่แน่นอนในภาพหน้าจอด้านล่างหลังจากที่คุณรันสคริปต์ PowerShell ข้างต้น

วิธีที่ 3: การใช้ฟังก์ชันแบบกำหนดเอง

ใน PowerShell คุณยังสามารถสร้างฟังก์ชันแบบกำหนดเองเพื่อใช้ตรรกะซ้ำและจัดการการเข้ารหัสหลายรายการได้ นี่คือตัวอย่างวิธีการทำ

ตัวอย่าง

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

ในตัวอย่างนี้ ฟังก์ชัน ConvertTo-Base64 รับสตริงเป็นอินพุต แปลงเป็นอาร์เรย์ไบต์ แล้วเข้ารหัสเป็นสตริง Base64 ฟังก์ชันนี้สามารถนำมาใช้ซ้ำได้ทั่วทั้งสคริปต์ของคุณเพื่อการเข้ารหัส Base64 ที่สอดคล้องกัน

ตรวจสอบการแปลงสตริงเป็น JSON ใน PowerShell

ถอดรหัสสตริง Base64 ใน PowerShell

หากต้องการถอดรหัสสตริง Base64 กลับเป็นรูปแบบดั้งเดิม คุณสามารถใช้คลาส [System.Convert] อีกครั้ง แต่คราวนี้ใช้เมธอด FromBase64String

ตัวอย่าง

นี่คือตัวอย่างที่สมบูรณ์

# 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

ตัวอย่างนี้สาธิตวิธีการถอดรหัสสตริง Base64 กลับไปเป็นข้อความต้นฉบับโดยการย้อนกลับกระบวนการเข้ารหัส

คุณสามารถดูภาพหน้าจอด้านล่าง ฉันรันสคริปต์ PowerShell ด้านบนโดยใช้โค้ด VS

บทสรุป

ในฐานะนักพัฒนา PowerShell คุณจะได้รับข้อกำหนดนี้บ่อยมาก และนั่นคือวิธีแปลงสตริงเป็น Base64 ใน PowerShell ฉันได้อธิบายวิธีการดำเนินการโดยใช้วิธีการต่างๆ แล้ว เช่น การใช้คลาส [System.Convert] และคลาส [System.Text.Encoding] และคุณสามารถสร้าง ฟังก์ชันแบบกำหนดเองเพื่อนำมาใช้ซ้ำ ฉันได้พูดคุยถึงวิธีถอดรหัสสตริง base64 ใน PowerShell แล้ว

ถึงกระนั้น คุณมีคำถามบ้างไหม? รู้สึกอิสระที่จะแสดงความคิดเห็นด้านล่าง ฉันจะพยายามตอบกลับโดยเร็วที่สุด

บทความที่เกี่ยวข้อง