Bagikan melalui


ConvertTo-SecureString

Mengonversi teks biasa atau string terenkripsi menjadi string aman.

Sintaks

Secure (Default)

ConvertTo-SecureString
    [-String] <String>
    [[-SecureKey] <SecureString>]
    [<CommonParameters>]

PlainText

ConvertTo-SecureString
    [-String] <String>
    [-AsPlainText]
    [-Force]
    [<CommonParameters>]

Open

ConvertTo-SecureString
    [-String] <String>
    [-Key <Byte[]>]
    [<CommonParameters>]

Deskripsi

Cmdlet ConvertTo-SecureString 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 cmdlet ConvertFrom-SecureString. Ini memungkinkannya disimpan dalam file untuk digunakan nanti.

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

Nota

Untuk informasi selengkapnya tentang perlindungan data SecureString, lihat Seberapa aman SecureString?.

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 cmdlet Read-Host untuk membuat string aman. Setelah Anda memasukkan perintah, karakter apa pun yang Anda ketik dikonversi menjadi string aman lalu disimpan dalam variabel $Secure.

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

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

Perintah keempat menampilkan string terenkripsi dalam nilai variabel $Encrypted.

Perintah kelima menggunakan cmdlet ConvertTo-SecureString untuk mengonversi string standar terenkripsi dalam variabel $Encrypted kembali menjadi string aman. Ini menyimpan hasil dalam variabel $Secure2. Perintah keenam menampilkan nilai variabel $Secure2. 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 cmdlet Read-Host untuk membuat string aman. Setelah Anda memasukkan perintah, karakter apa pun yang Anda ketik dikonversi menjadi string aman lalu disimpan dalam variabel $Secure.

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

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

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

Contoh 3: Mengonversi string teks biasa menjadi string aman

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

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

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

Caution

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.

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

PlainText
Position:1
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Force

Mulai dari 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.

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

PlainText
Position:2
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:

Byte[]

Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

Open
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:SecureString
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

Secure
Position:1
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-String

Menentukan string yang akan dikonversi ke string aman.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

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.