ConvertTo-SecureString
Düz metin veya şifrelenmiş dizeleri güvenli dizelere dönüştürür.
Sözdizimi
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Description
ConvertTo-SecureString
cmdlet'i şifrelenmiş standart dizeleri güvenli dizelere dönüştürür. Ayrıca düz metni güvenli dizelere dönüştürebilir.
ConvertFrom-SecureString
ve Read-Host
ile kullanılır. cmdlet tarafından oluşturulan güvenli dize, SecureString türünde bir parametre gerektiren cmdlet'ler veya işlevlerle kullanılabilir. Güvenli dize, ConvertFrom-SecureString
cmdlet'i kullanılarak şifrelenmiş, standart bir dizeye geri dönüştürülebilir. Bu, daha sonra kullanmak üzere bir dosyada depolanmasını sağlar.
Dönüştürülmüş standart dize, belirtilen bir anahtar kullanılarak ConvertFrom-SecureString
ile şifrelenmişse, aynı anahtarın Cmdlet'inin Anahtar veya ConvertTo-SecureString
parametresi olarak sağlanmış olması gerekir.
Not
SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.
Örnekler
Örnek 1: Güvenli dizeyi şifrelenmiş dizeye dönüştürme
Bu örnekte kullanıcı girişinden güvenli bir dize oluşturma, güvenli dizeyi şifrelenmiş standart dizeye dönüştürme ve ardından şifrelenmiş standart dizeyi yeniden güvenli bir dizeye dönüştürme gösterilmektedir.
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
İlk komut, güvenli bir dize oluşturmak için cmdlet'in Read-Host
parametresini kullanır. Komutu girdikten sonra, yazdığınız tüm karakterler güvenli bir dizeye dönüştürülür ve ardından $Secure
değişkenine kaydedilir.
İkinci komut $Secure
değişkeninin içeriğini görüntüler.
$Secure
değişkeni güvenli bir dize içerdiğinden, PowerShell yalnızca System.Security.SecureString türünü görüntüler.
Üçüncü komut, ConvertFrom-SecureString
değişkenindeki güvenli dizeyi şifrelenmiş standart dizeye dönüştürmek için $Secure
cmdlet'ini kullanır. Sonucu $Encrypted
değişkenine kaydeder.
Dördüncü komut, şifrelenmiş dizeyi $Encrypted
değişkeninin değerinde görüntüler.
Beşinci komut, ConvertTo-SecureString
değişkenindeki şifrelenmiş standart dizeyi güvenli bir dizeye dönüştürmek için $Encrypted
cmdlet'ini kullanır. Sonucu $Secure2
değişkenine kaydeder. Altıncı komut, $Secure2
değişkeninin değerini görüntüler. SecureString türü komutun başarılı olduğunu gösterir.
Örnek 2: Dosyadaki şifrelenmiş bir dizeden güvenli bir dize oluşturma
Bu örnekte, bir dosyaya kaydedilmiş şifrelenmiş bir standart dizeden nasıl güvenli bir dize oluşturulacağı gösterilmektedir.
$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)
İlk komut, güvenli bir dize oluşturmak için cmdlet'in Read-Host
parametresini kullanır. Komutu girdikten sonra, yazdığınız tüm karakterler güvenli bir dizeye dönüştürülür ve ardından $Secure
değişkenine kaydedilir.
İkinci komut, ConvertFrom-SecureString
değişkenindeki güvenli dizeyi belirtilen anahtarı kullanarak şifrelenmiş standart dizeye dönüştürmek için $Secure
cmdlet'ini kullanır. İçerikler $Encrypted
değişkenine kaydedilir.
Üçüncü komut, |
değişkeninin değerini Encrypted.txt dosyasına kaydeden $Encrypted
cmdlet'ine göndermek için bir işlem hattı işleci (Set-Content
) kullanır.
Dördüncü komut, Encrypted.txt dosyasında şifrelenmiş standart dizeyi almak için Get-Content
cmdlet'ini kullanır. komut, şifrelenmiş dizeyi belirtilen anahtarı kullanarak güvenli bir dizeye dönüştüren ConvertTo-SecureString
cmdlet'ine göndermek için bir işlem hattı işleci kullanır.
Sonuçlar $Secure2
değişkenine kaydedilir.
Örnek 3: Düz metin dizesini güvenli bir dizeye dönüştürme
Bu komut, düz metin dizesini P@ssW0rD!
güvenli bir dizeye dönüştürür ve sonucu $Secure_String_Pwd
değişkeninde depolar.
PowerShell 7'den başlayarak, AsPlainText parametresi kullanılırken Force parametresi gerekli değildir. Ancak, Force parametresi dahil olmak deyiminin önceki sürümlerle uyumlu olmasını sağlar.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
Dikkat
Betikte veya komut satırında düz metin dizeleri kullanmaktan kaçınmanız gerekir. Düz metin olay günlüklerinde ve komut geçmişi günlüklerinde görünebilir.
Parametreler
-AsPlainText
Güvenli bir dizeye dönüştürülecek düz metin dizesini belirtir. Güvenli dize cmdlet'leri gizli metnin korunmasına yardımcı olur. Metin gizlilik için şifrelenir ve kullanıldıktan sonra bilgisayar belleğinden silinir. Giriş olarak düz metin sağlamak için bu parametreyi kullanırsanız, sistem bu girişi bu şekilde koruyamaz.
Tür: | SwitchParameter |
Position: | 1 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Force
PowerShell 7'de başlayarak, AsPlainText parametresi kullanılırken Zorla parametresi artık gerekli değildir. Parametresi kullanılmasa da, PowerShell'in önceki sürümleriyle uyumluluk sağlamak için kaldırılmamıştı.
Tür: | SwitchParameter |
Position: | 2 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Key
Özgün güvenli dizeyi şifrelenmiş standart dizeye dönüştürmek için kullanılan şifreleme anahtarını belirtir. Geçerli anahtar uzunlukları 16, 24 ve 32 bayttır.
Tür: | Byte[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SecureKey
Özgün güvenli dizeyi şifrelenmiş standart dizeye dönüştürmek için kullanılan şifreleme anahtarını belirtir. Anahtar, güvenli bir dize biçiminde sağlanmalıdır. Güvenli dize, anahtar olarak kullanılacak bir bayt dizisine dönüştürülür. Geçerli güvenli anahtar uzunlukları 8, 12 ve 16 kod noktasıdır.
Tür: | SecureString |
Position: | 1 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-String
Güvenli bir dizeye dönüştürülecek dizeyi belirtir.
Tür: | String |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
Girişler
Standart bir şifrelenmiş dizeyi bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
Bu cmdlet, oluşturulan SecureString nesnesini döndürür.
Notlar
İfadeler gibi bazı karakterler, bunları içeren dizedeki birkaç kod noktasına karşılık gelir. Parolada kullanıldığında sorunlara ve yanlış anlamalara neden olabilecekleri için bu karakterleri kullanmaktan kaçının.
İlişkili Bağlantılar
PowerShell