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

ConvertFrom-SecureString (Microsoft.PowerShell.Security)


ConvertFrom-SecureString

โมดูล :
Microsoft.PowerShell.Security

แปลงสตริงที่ปลอดภัยเป็นสตริงมาตรฐานที่เข้ารหัส

ไวยากรณ์

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

คำอธิบาย

ConvertFrom-SecureString cmdlet จะแปลงสตริงที่ปลอดภัย (System.Security.SecureString) ให้เป็นสตริงมาตรฐานที่เข้ารหัส (System.String) ไม่เหมือนกับสตริงที่ปลอดภัย สตริงมาตรฐานที่เข้ารหัสสามารถบันทึกลงในไฟล์เพื่อใช้ในภายหลังได้ สตริงมาตรฐานที่เข้ารหัสสามารถแปลงกลับเป็นรูปแบบสตริงที่ปลอดภัยได้โดยใช้ cmdlet ConvertTo-SecureString

หากมีการระบุคีย์การเข้ารหัสโดยใช้พารามิเตอร์ คีย์ หรือ SecureKey ระบบจะใช้อัลกอริธึมการเข้ารหัส Advanced Encryption Standard (AES) คีย์ที่ระบุต้องมีความยาว 128, 192 หรือ 256 บิต เนื่องจากเป็นความยาวของคีย์ที่อัลกอริธึมการเข้ารหัส AES รองรับ หากไม่มีการระบุคีย์ ระบบจะใช้ Windows Data Protection API (DPAPI) เพื่อเข้ารหัสการแสดงสตริงมาตรฐาน

บันทึก

โปรดทราบว่าตาม DotNet เนื้อหาของ SecureString จะไม่ถูกเข้ารหัสบนระบบที่ไม่ใช่ Windows

ตัวอย่าง

ตัวอย่างที่ 1: สร้างสตริงที่ปลอดภัย

$SecureString = Read-Host -AsSecureString

คำสั่งนี้สร้างสตริงที่ปลอดภัยจากอักขระที่คุณพิมพ์ที่พร้อมท์คำสั่ง หลังจากป้อนคำสั่งแล้ว ให้พิมพ์สตริงที่คุณต้องการจัดเก็บเป็นสตริงที่ปลอดภัย เครื่องหมายดอกจัน (*) จะปรากฏขึ้นเพื่อแสดงอักขระแต่ละตัวที่คุณพิมพ์

ตัวอย่างที่ 2: แปลงสตริงที่ปลอดภัยเป็นสตริงมาตรฐานที่เข้ารหัส

$StandardString = ConvertFrom-SecureString $SecureString

คำสั่งนี้จะแปลงสตริงที่ปลอดภัยในตัวแปร $SecureString ให้เป็นสตริงมาตรฐานที่เข้ารหัส ผลลัพธ์สตริงมาตรฐานที่เข้ารหัสจะถูกจัดเก็บไว้ในตัวแปร $StandardString

ตัวอย่างที่ 3: แปลงสตริงที่ปลอดภัยเป็นสตริงมาตรฐานที่เข้ารหัสด้วยคีย์ 192 บิต

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

คำสั่งเหล่านี้ใช้อัลกอริธึม Advanced Encryption Standard (AES) เพื่อแปลงสตริงที่ปลอดภัยที่จัดเก็บไว้ในตัวแปร $SecureString ให้เป็นสตริงมาตรฐานที่เข้ารหัสด้วยคีย์ 192 บิต ผลลัพธ์สตริงมาตรฐานที่เข้ารหัสจะถูกจัดเก็บไว้ในตัวแปร $StandardString

คำสั่งแรกเก็บคีย์ไว้ในตัวแปร $Key คีย์คืออาร์เรย์ของตัวเลขทศนิยม 24 ตัว ซึ่งแต่ละตัวต้องน้อยกว่า 256 เพื่อให้พอดีกับไบต์เดียวที่ไม่ได้ลงนาม

เนื่องจากเลขทศนิยมแต่ละตัวแทนไบต์เดียว (8 บิต) คีย์จึงมี 24 หลัก รวมเป็น 192 บิต (8 x 24) นี่เป็นความยาวคีย์ที่ถูกต้องสำหรับอัลกอริทึม AES

คำสั่งที่สองใช้คีย์ในตัวแปร $Key เพื่อแปลงสตริงที่ปลอดภัยเป็นสตริงมาตรฐานที่เข้ารหัส

ตัวอย่างที่ 4: แปลงสตริงที่ปลอดภัยเป็นสตริงข้อความธรรมดาโดยตรง

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

พารามิเตอร์

-AsPlainText

เมื่อตั้งค่าแล้ว ConvertFrom-SecureString จะแปลงสตริงที่ปลอดภัยเป็นสตริงข้อความธรรมดาที่ถอดรหัสเป็นเอาต์พุต

พารามิเตอร์นี้ถูกเพิ่มใน PowerShell 7.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Key

ระบุคีย์การเข้ารหัสเป็นอาร์เรย์ไบต์

พิมพ์ :

ไบต์[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SecureKey

ระบุคีย์เข้ารหัสเป็นสตริงที่ปลอดภัย ค่าสตริงที่ปลอดภัยจะถูกแปลงเป็นอาร์เรย์ไบต์ก่อนที่จะใช้เป็นคีย์

พิมพ์ :

SecureString

ตำแหน่ง:

1

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SecureString

ระบุสตริงที่ปลอดภัยที่จะแปลงเป็นสตริงมาตรฐานที่เข้ารหัส

พิมพ์ :

SecureString

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

อินพุต

สตริงที่ปลอดภัย

คุณสามารถไปป์วัตถุ SecureString ไปที่ cmdlet นี้

เอาท์พุต

สตริง

cmdlet นี้ส่งคืนสตริงข้อความธรรมดาที่สร้างขึ้น

หมายเหตุ

  • หากต้องการสร้างสตริงที่ปลอดภัยจากอักขระที่พิมพ์ที่พร้อมท์คำสั่ง ให้ใช้พารามิเตอร์ AsSecureString ของ cmdlet Read-Host
  • เมื่อคุณใช้พารามิเตอร์ คีย์ หรือ SecureKey เพื่อระบุคีย์ ความยาวของคีย์จะต้องถูกต้อง ตัวอย่างเช่น สามารถระบุคีย์ขนาด 128 บิตเป็นอาร์เรย์ไบต์ที่มีเลขทศนิยม 16 หลักได้ ในทำนองเดียวกันคีย์ 192 บิตและ 256 บิตสอดคล้องกับอาร์เรย์ไบต์ที่มีเลขฐานสิบ 24 และ 32 ตามลำดับ
  • อักขระบางตัว เช่น อิโมติคอน สอดคล้องกับจุดโค้ดหลายจุดในสตริงที่มีอักขระเหล่านั้น หลีกเลี่ยงการใช้อักขระเหล่านี้เนื่องจากอาจทำให้เกิดปัญหาและความเข้าใจผิดเมื่อใช้เป็นรหัสผ่าน

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