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.