Aracılığıyla paylaş


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-Hostile 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

String

Standart bir şifrelenmiş dizeyi bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

SecureString

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.