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
Anda dapat menyalurkan string terenkripsi standar ke cmdlet ini.
Output
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.