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

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


ใช้วิธี ToString() ของคลาส [System.BitConverer] ใน PowerShell เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก วิธีนี้ใช้ อาร์เรย์ไบต์เป็นพารามิเตอร์อินพุตและรับค่าเลขฐานสิบหกของอาร์เรย์ไบต์

สตริงเลขฐานสิบหกคือการแสดงข้อมูลไบนารีในรูปแบบเลขฐานสิบหก เป็นระบบเลขฐาน 16 ที่ใช้ตัวเลข 0-9 หลัก และตัวอักษร A-F เพื่อแสดงค่าตั้งแต่ 0 ถึง 15

คลาส [System.BitConverter] จัดเตรียมวิธีการแปลงค่าประเภทตัวเลขเป็นและจากอาร์เรย์ไบต์ ตลอดจนการแปลงอาร์เรย์ไบต์เป็นชนิดข้อมูลอื่น

ในบทความนี้ เราจะกล่าวถึงวิธีการใช้วิธี ToString() ใน PowerShell เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก

แปลง Byte Array เป็น Hex String ใน PowerShell โดยใช้วิธี ToString()

ใช้วิธี ToString() ของคลาส [System.BitConverter] ใน PowerShell เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก

มาทำความเข้าใจด้วยความช่วยเหลือของตัวอย่างเพื่อสร้างอาร์เรย์ไบต์และใช้เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก

# Declare string variable
$str = "ShellGeek"

# converting string to bytes array
$bytesArr = [System.Text.Encoding]::UTF8.GetBytes($str)

# Print the bytes array
$bytesArr

# Convert byte array to hex string
$hex = [System.BitConverter]::ToString($bytesArr)

# Print the hex string
$hex

ในสคริปต์ PowerShell ข้างต้น ตัวแปร $str เป็นประเภทสตริงที่มีค่า “ShellGeek ” เมื่อใช้เมธอด GetBytes() จะแปลงสตริงเป็นอาร์เรย์ไบต์และกำหนดผลลัพธ์ให้กับตัวแปร $bytesArr ที่มีอาร์เรย์ไบต์

ในการแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก จะใช้เมธอด ToString() ของคลาส System.BitConverter ที่ใช้อาร์เรย์ไบต์เป็นพารามิเตอร์อินพุตและส่งกลับค่าฐานสิบหก เชือก

ผลลัพธ์ของสคริปต์ข้างต้นใน PowerShell จะแปลงอาร์เรย์ไบต์เป็นสตริงเลขฐานสิบหก

เคล็ดลับเด็ด: วิธีแปลงสตริงเป็นจำนวนเต็มใน PowerShell!

แปลง Byte Array เป็น Hex String ใน PowerShell

ใช้คลาส [System.BitConverter] ที่ให้เมธอด ToString() เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก

ในสคริปต์ต่อไปนี้ ตัวแปร $bytesArr มีการแทนค่าไบนารี่ของสตริง “ShellGeek ”

# Create a byte array
$bytesArr = [byte[]]@(83,104,101,108,108,71,101,101,107)         

# Convert byte array to hex string
$hex = [System.BitConverter]::ToString($bytes)       

# Print the string
$hex

ในสคริปต์ PowerShell ข้างต้น คลาส System.BitConverter มีเมธอด GetString() ใน PowerShell เพื่อแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหก วิธีการนี้รับพารามิเตอร์อินพุตเป็นอาร์เรย์ไบต์และส่งกลับสตริง

ผลลัพธ์ของสคริปต์จะแปลงอาร์เรย์ไบต์เป็นสตริงเลขฐานสิบหก

# Create a byte array
PS C:\> $bytesArr = [byte[]]@(83,104,101,108,108,71,101,101,107)  

# Convert byte array to hex string
PS C:\> $hex = [System.BitConverter]::ToString($bytes) 

# Print the hex string
PS C:\> $hex

PS C:\> ShellGeek

สตริงเลขฐานสิบหกสามารถแปลงเป็นอาร์เรย์ไบต์ได้โดยใช้เมธอด FromHexString() ของคลาส [System.Convert] ใน PowerShell เวอร์ชัน 7.1 เป็นต้นไป

# byte array
$bytesArr = [byte[]]@(83,104,101,108,108,71,101,101,107)

# Convert byte array to hex string
$hex = [System.BitConverter]::ToString($bytes)

# remove - between hex string
$hexString = $hex.Replace('-','')

# convert hex string to byte array using FromHexString method
$bytes = [System.Convert]::FromHexString($hexString)

# Print the bytes
Write-Host $bytes

ในสคริปต์ PowerShell ข้างต้น ให้สร้างอาร์เรย์ไบต์และแปลงเป็นสตริงฐานสิบหกโดยใช้เมธอด ToString() ของคลาส System.BitConveter

ใน PowerShell เวอร์ชัน 7.1 เป็นต้นไป คลาส System.Convert จัดเตรียมเมธอด FromHexString() ที่แปลงสตริงฐานสิบหกเป็นอาร์เรย์ไบต์

ใน PowerShell เวอร์ชันเก่า ให้ใช้สคริปต์ต่อไปนี้เพื่อแปลงสตริงฐานสิบหกเป็นอาร์เรย์ไบต์

# byte array
$bytesArr = [byte[]]@(83,104,101,108,108,71,101,101,107)

# Convert byte array to hex string
$hex = [System.BitConverter]::ToString($bytes)

# remove - between hex string
$hexString = $hex.Replace('-','')

# Convert hex string to byte array
 [byte[]]@(for ($i = 0; $i -lt $hexString.Length; $i += 2) { [convert]::ToByte($hexString.Substring($i, 2), 16) })    

เคล็ดลับเด็ด: วิธีแปลง guid เป็นสตริงใน PowerShell!

บทสรุป

ฉันหวังว่าบทความข้างต้นเกี่ยวกับวิธีการแปลงอาร์เรย์ไบต์เป็นสตริงฐานสิบหกใน PowerShell โดยใช้วิธี GetString() ของรูปแบบการเข้ารหัส UTF8 จะเป็นประโยชน์สำหรับคุณ

การแปลงอาร์เรย์ไบต์เป็นสตริงเลขฐานสิบหกจะมีประโยชน์สำหรับงานต่างๆ เช่น การสร้างคีย์การเข้ารหัส หรือการทำงานกับข้อมูลไบนารี

คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐาน PowerShell ได้ในหน้าแรกของ ShellGeek

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