ConvertTo-SecureString

Düz metin veya şifrelenmiş dizeleri güvenli dizelere dönüştürür.

Syntax

ConvertTo-SecureString
              [-String] <String>
              [[-SecureKey] <SecureString>]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-AsPlainText]
              [-Force]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-Key <Byte[]>]
              [<CommonParameters>]

Description

cmdlet'i ConvertTo-SecureString şifrelenmiş standart dizeleri güvenli dizelere dönüştürür. Ayrıca düz metni güvenli dizelere dönüştürebilir. ve Read-Hostile ConvertFrom-SecureString 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, cmdlet'i kullanılarak şifrelenmiş, standart bir dizeye ConvertFrom-SecureString geri dönüştürülebilir. Bu, daha sonra kullanmak üzere bir dosyada depolanmasını sağlar.

Dönüştürülen standart dize belirtilen bir anahtar kullanılarak şifrelendiyse ConvertFrom-SecureString , cmdlet'in Key veya SecureKey parametresinin ConvertTo-SecureString değeriyle aynı anahtar sağlanmalıdır.

Not

DotNet başına, SecureString içeriğinin Windows dışı sistemlerde şifrelenmediğini unutmayın.

Ö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 AsSecureString parametresini kullanır. Komutu girdikten sonra, yazdığınız tüm karakterler güvenli bir dizeye dönüştürülür ve değişkene $Secure kaydedilir.

İkinci komut değişkenin $Secure içeriğini görüntüler. Değişken güvenli bir dize içerdiğinden $Secure PowerShell yalnızca System.Security.SecureString türünü görüntüler.

Üçüncü komut, değişkendeki ConvertFrom-SecureString güvenli dizeyi şifrelenmiş bir standart dizeye dönüştürmek için cmdlet'ini $Secure kullanır. Sonucu değişkene $Encrypted kaydeder.

Dördüncü komut, değişken değerinde şifrelenmiş dizeyi $Encrypted görüntüler.

Beşinci komut, değişkendeki ConvertTo-SecureString şifrelenmiş standart dizeyi yeniden güvenli bir dizeye dönüştürmek için cmdlet'ini $Encrypted kullanır. Sonucu değişkene $Secure2 kaydeder. Altıncı komut değişkenin $Secure2 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 AsSecureString parametresini kullanır. Komutu girdikten sonra, yazdığınız tüm karakterler güvenli bir dizeye dönüştürülür ve değişkene $Secure kaydedilir.

İkinci komut, belirtilen anahtarı kullanarak değişkendeki $Secure güvenli dizeyi şifrelenmiş bir standart dizeye dönüştürmek için cmdlet'ini kullanırConvertFrom-SecureString. İçerikler değişkene $Encrypted kaydedilir.

Üçüncü komut, değişkenin $Encrypted değerini cmdlet'ine Set-Content göndermek için bir işlem hattı işleci (|) kullanır ve bu da değeri Encrypted.txt dosyasına kaydeder.

Dördüncü komut, Encrypted.txt dosyasında şifrelenmiş standart dizeyi almak için cmdlet'ini kullanır Get-Content . komut, şifrelenmiş dizeyi cmdlet'ine göndermek için ConvertTo-SecureString bir işlem hattı işleci kullanır ve bu da belirtilen anahtarı kullanarak bunu güvenli bir dizeye dönüştürür. Sonuçlar değişkene $Secure2 kaydedilir.

Örnek 3: Düz metin dizesini güvenli bir dizeye dönüştürme

Bu komut düz metin dizesini güvenli bir dizeye P@ssW0rD! dönüştürür ve sonucu değişkende $Secure_String_Pwd 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.

Type:SwitchParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

PowerShell 7'de başlayarak, AsPlainText parametresi kullanılırken Force 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ı.

Type:SwitchParameter
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SecureString
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-String

Güvenli bir dizeye dönüştürülecek dizeyi belirtir.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.