Bagikan melalui


ConvertTo-SecureString

Mengonversi teks biasa atau string terenkripsi menjadi string aman.

Sintaks

ConvertTo-SecureString
              [-String] <String>
              [[-SecureKey] <SecureString>]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-AsPlainText]
              [-Force]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-Key <Byte[]>]
              [<CommonParameters>]

Deskripsi

ConvertTo-SecureString Cmdlet mengonversi string standar terenkripsi menjadi string aman. Ini juga dapat mengonversi teks biasa menjadi string aman. Ini digunakan dengan ConvertFrom-SecureString dan Read-Host. String aman yang dibuat oleh cmdlet dapat digunakan dengan cmdlet atau fungsi yang memerlukan parameter jenis SecureString. String aman dapat dikonversi kembali ke string standar terenkripsi menggunakan ConvertFrom-SecureString cmdlet. Ini memungkinkannya disimpan dalam file untuk digunakan nanti.

Jika string standar yang dikonversi dienkripsi dengan ConvertFrom-SecureString menggunakan kunci tertentu, kunci yang sama harus disediakan sebagai nilai parameter Key atau SecureKey cmdlet ConvertTo-SecureString .

Catatan

Perhatikan bahwa per DotNet, konten SecureString tidak dienkripsi pada sistem non-Windows.

Contoh

Contoh 1: Mengonversi string aman ke string terenkripsi

Contoh ini menunjukkan cara membuat string aman dari input pengguna, mengonversi string aman menjadi string standar terenkripsi, lalu mengonversi string standar terenkripsi kembali ke string aman.

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString

Perintah pertama menggunakan parameter AsSecureString dari Read-Host cmdlet untuk membuat string aman. Setelah Anda memasukkan perintah, karakter apa pun yang Anda ketik dikonversi menjadi string aman lalu disimpan dalam $Secure variabel .

Perintah kedua menampilkan konten $Secure variabel. $Secure Karena variabel berisi string aman, PowerShell hanya menampilkan jenis System.Security.SecureString.

Perintah ketiga menggunakan ConvertFrom-SecureString cmdlet untuk mengonversi string aman dalam $Secure variabel menjadi string standar terenkripsi. Ini menyimpan hasil dalam $Encrypted variabel.

Perintah keempat menampilkan string terenkripsi dalam nilai $Encrypted variabel.

Perintah kelima menggunakan ConvertTo-SecureString cmdlet untuk mengonversi string standar terenkripsi dalam $Encrypted variabel kembali menjadi string aman. Ini menyimpan hasil dalam $Secure2 variabel. Perintah keenam menampilkan nilai $Secure2 variabel. Jenis SecureString menunjukkan bahwa perintah berhasil.

Contoh 2: Membuat string aman dari string terenkripsi dalam file

Contoh ini menunjukkan cara membuat string aman dari string standar terenkripsi yang disimpan dalam file.

$Secure = Read-Host -AsSecureString
$Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
$Encrypted | Set-Content Encrypted.txt
$Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)

Perintah pertama menggunakan parameter AsSecureString dari Read-Host cmdlet untuk membuat string aman. Setelah Anda memasukkan perintah, karakter apa pun yang Anda ketik dikonversi menjadi string aman lalu disimpan dalam $Secure variabel .

Perintah kedua menggunakan ConvertFrom-SecureString cmdlet untuk mengonversi string aman dalam $Secure variabel menjadi string standar terenkripsi dengan menggunakan kunci yang ditentukan. Konten disimpan dalam $Encrypted variabel.

Perintah ketiga menggunakan operator alur (|) untuk mengirim nilai $Encrypted variabel ke Set-Content cmdlet, yang menyimpan nilai dalam file Encrypted.txt.

Perintah keempat menggunakan Get-Content cmdlet untuk mendapatkan string standar terenkripsi dalam file Encrypted.txt. Perintah menggunakan operator alur untuk mengirim string terenkripsi ke ConvertTo-SecureString cmdlet, yang mengonversinya menjadi string aman dengan menggunakan kunci yang ditentukan. Hasilnya disimpan dalam $Secure2 variabel.

Contoh 3: Mengonversi string teks biasa menjadi string aman

Perintah ini mengonversi string P@ssW0rD! teks biasa menjadi string aman dan menyimpan hasilnya $Secure_String_Pwd dalam variabel.

Mulai dari PowerShell 7, parameter Force tidak diperlukan saat menggunakan parameter AsPlainText . Namun, termasuk parameter Force memastikan pernyataan kompatibel dengan versi sebelumnya.

$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

Perhatian

Anda harus menghindari penggunaan string teks biasa dalam skrip atau dari baris perintah. Teks biasa dapat muncul di log peristiwa dan log riwayat perintah.

Parameter

-AsPlainText

Menentukan string teks biasa untuk dikonversi ke string aman. Cmdlet string aman membantu melindungi teks rahasia. Teks dienkripsi untuk privasi dan dihapus dari memori komputer setelah digunakan. Jika Anda menggunakan parameter ini untuk menyediakan teks biasa sebagai input, sistem tidak dapat melindungi input tersebut dengan cara ini.

Type:SwitchParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Dimulai di PowerShell 7, parameter Force tidak lagi diperlukan saat menggunakan parameter AsPlainText . Meskipun parameter tidak digunakan, parameter tidak dihapus untuk memberikan kompatibilitas dengan versi PowerShell yang lebih lama.

Type:SwitchParameter
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Key

Menentukan kunci enkripsi yang digunakan untuk mengonversi string aman asli menjadi string standar terenkripsi. Panjang kunci yang valid adalah 16, 24, dan 32 byte.

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureKey

Menentukan kunci enkripsi yang digunakan untuk mengonversi string aman asli menjadi string standar terenkripsi. Kunci harus disediakan dalam format string aman. String aman akan dikonversi ke array byte untuk digunakan sebagai kunci. Panjang kunci aman yang valid adalah 8, 12, dan 16 titik kode.

Type:SecureString
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-String

Menentukan string yang akan dikonversi ke string aman.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan string terenkripsi standar ke cmdlet ini.

Output

SecureString

Cmdlet ini mengembalikan objek SecureString yang dibuat.

Catatan

Beberapa karakter, seperti emotikon, sesuai dengan beberapa titik kode dalam string yang berisinya. Hindari menggunakan karakter ini karena dapat menyebabkan masalah dan kesalahpahaman saat digunakan dalam kata sandi.