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

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


วันนี้ ฉันกำลังตรวจสอบวิธีการแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell ฉันลองวิธีการต่างๆ ในบทช่วยสอนนี้ ฉันจะแสดงวิธีแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell พร้อมตัวอย่าง

หากต้องการแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell คุณสามารถใช้เมธอด FromBase64String ของคลาส System.Convert ตัวอย่างเช่น เมื่อกำหนดสตริง Base64 $base64String="SGVsbG8gV29ybGQh" คุณสามารถแปลงได้โดยการรัน $byteArray=[System.Convert]::FromBase64String($base64String) เมธอดนี้จะถอดรหัสสตริง Base64 เป็นอาร์เรย์ไบต์ที่เทียบเท่าใน PowerShell

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

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

แปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell

ตอนนี้ให้ฉันแสดงวิธีการแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell โดยใช้วิธีต่างๆ

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

วิธีที่ตรงไปตรงมาที่สุดในการแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell คือการใช้คลาส System.Convert ซึ่งมีวิธีการในตัวสำหรับการแปลงดังกล่าว

ตัวอย่าง

นี่เป็นตัวอย่างง่ายๆ เพื่อทำความเข้าใจสิ่งนี้ให้ดีขึ้น:

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

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

# Output the byte array
$byteArray

ในตัวอย่างนี้ สตริง Base64 "SGVsbG8gV29ybGQh" (ซึ่งหมายถึง “Hello World!”) จะถูกแปลงเป็นอาร์เรย์ไบต์โดยใช้เมธอด FromBase64String ของ System แปลงคลาส วิธีการนี้จะถอดรหัสสตริง Base64 เป็นอาร์เรย์จำนวนเต็ม 8 บิตที่ไม่ได้ลงนามที่เทียบเท่ากัน

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

อ่านวิธีการแปลงสตริงเป็นสองเท่าใน PowerShell

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

คุณยังสามารถสร้างฟังก์ชันแบบกำหนดเองใน PowerShell เพื่อแปลง Base64 String เป็น Byte Array ใน PowerShell

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

ตัวอย่าง

function Convert-Base64ToByteArray {
    param (
        [string]$Base64String
    )

    return [System.Convert]::FromBase64String($Base64String)
}

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

# Convert Base64 string to byte array using the custom function
$byteArray = Convert-Base64ToByteArray -Base64String $base64String

# Output the byte array
$byteArray

ฟังก์ชันแบบกำหนดเองนี้ Convert-Base64ToByteArray ใช้สตริง Base64 เป็นอินพุตและส่งกลับอาร์เรย์ไบต์ที่สอดคล้องกัน แนวทางนี้ทำให้สคริปต์เป็นแบบแยกส่วนและบำรุงรักษาได้ง่ายขึ้น

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

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

วิธีที่ 3: การใช้ System.Text.Encoding

สำหรับผู้ที่ต้องการจัดการการเข้ารหัสข้อความต่างๆ คลาส System.Text.Encoding สามารถใช้ร่วมกับการแปลง Base64 ได้ วิธีนี้มีความก้าวหน้าและมีประโยชน์มากกว่าเมื่อต้องจัดการกับการเข้ารหัสอักขระต่างๆ

ตัวอย่าง

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

# Base64 encoded string
$base64String = "SGVsbG8gV29ybGQh"

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

# Convert byte array to string (UTF8 encoding)
$utf8String = [System.Text.Encoding]::UTF8.GetString($byteArray)

# Output the UTF8 string
$utf8String

ในตัวอย่างนี้ หลังจากแปลงสตริง Base64 เป็นอาร์เรย์ไบต์แล้ว ไบต์อาร์เรย์จะถูกแปลงเพิ่มเติมเป็นสตริง UTF8 โดยใช้คลาส System.Text.Encoding สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อต้องจัดการกับข้อมูลข้อความที่จำเป็นต้องเข้ารหัสใหม่หรือประมวลผลเพิ่มเติม

บทสรุป

ในบทช่วยสอนนี้ ฉันได้อธิบายวิธีการแปลงสตริง Base64 เป็นอาร์เรย์ไบต์ใน PowerShell โดยใช้วิธีต่างๆ

  • การใช้คลาส System.Convert()
  • การใช้ฟังก์ชันแบบกำหนดเอง
  • การใช้ System.Text.Encoding

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