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 ตามลำดับ
- อักขระบางตัว เช่น อิโมติคอน สอดคล้องกับจุดโค้ดหลายจุดในสตริงที่มีอักขระเหล่านั้น หลีกเลี่ยงการใช้อักขระเหล่านี้เนื่องจากอาจทำให้เกิดปัญหาและความเข้าใจผิดเมื่อใช้เป็นรหัสผ่าน