วิธีแปลงสตริงเป็น 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ในตัวอย่างนี้:
- เราเริ่มต้นด้วยสตริง
"Hello, New York!" - เราแปลงสตริงให้เป็นอาร์เรย์ไบต์โดยใช้การเข้ารหัส UTF-8
- จากนั้นเราจะแปลงอาร์เรย์ไบต์เป็นสตริง 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 แล้ว
ถึงกระนั้น คุณมีคำถามบ้างไหม? รู้สึกอิสระที่จะแสดงความคิดเห็นด้านล่าง ฉันจะพยายามตอบกลับโดยเร็วที่สุด


