ConvertTo-SecureString (Microsoft.PowerShell.Security)


ConvertTo-SecureString

Modül:
Microsoft.PowerShell.Security

Düz metni 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>]

Tanım

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 birlikte kullanılır. Cmdlet tarafından oluşturulan güvenli dize, cmdlet'ler veya SecureString türünde bir parametre gerektiren işlevlerle kullanılabilir. Güvenli dize, ConvertFrom-SecureString cmdlet'i kullanılarak tekrar şifrelenmiş, standart bir dizeye dönüştürülebilir. Bu, daha sonra kullanılmak üzere bir dosyada saklanmasını sağlar.

Dönüştürülmekte olan standart dize, belirtilen bir anahtar kullanılarak ConvertFrom-SecureString ile şifrelendiyse, aynı anahtarın Key veya SecureKey değeri olarak sağlanması gerekir. ConvertTo-SecureString cmdlet'inin parametresi.

Not

DotNet'e göre SecureString içeriğinin Windows olmayan sistemlerde şifrelenmediğini unutmayın.

Örnekler

Örnek 1: Güvenli bir dizeyi şifrelenmiş bir dizeye dönüştürme

Bu örnek, kullanıcı girişinden güvenli bir dizenin nasıl oluşturulacağını, güvenli dizenin şifrelenmiş bir standart dizeye nasıl dönüştürüleceğini ve ardından şifrelenmiş standart dizenin tekrar güvenli bir dizeye nasıl dönüştürüleceğini gösterir.

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 Read-Host cmdlet'inin AsSecureString 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, $Secure değişkenindeki güvenli dizeyi şifrelenmiş bir standart dizeye dönüştürmek için ConvertFrom-SecureString cmdlet'ini kullanır. Sonucu $Encrypted değişkenine kaydeder.

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

Beşinci komut, $Encrypted değişkenindeki şifrelenmiş standart dizeyi tekrar güvenli bir dizeye dönüştürmek için ConvertTo-SecureString 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: Bir dosyadaki şifrelenmiş dizeden güvenli dize oluşturma

Bu örnek, bir dosyaya kaydedilen şifrelenmiş bir standart dizeden güvenli bir dizenin nasıl oluşturulacağını gösterir.

$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 Read-Host cmdlet'inin AsSecureString 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şkenindeki güvenli dizeyi belirtilen anahtarı kullanarak şifrelenmiş bir standart dizeye dönüştürmek için ConvertFrom-SecureString cmdlet'ini kullanır. İçerikler $Encrypted değişkenine kaydedilir.

Üçüncü komut, $Encrypted değişkeninin değerini Set-Content cmdlet'ine göndermek için bir ardışık düzen operatörü (|) kullanır; Encrypted.txt dosyasındaki değer.

Dördüncü komut, Encrypted.txt dosyasındaki ş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 ardışık düzen operatörü kullanır. Sonuçlar $Secure2 değişkenine kaydedilir.

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

Bu komut, P@ssW0rD! düz metin dizesini güvenli bir dizeye dönüştürür ve sonucu $Secure_String_Pwd değişkeninde saklar.

PowerShell 7'den başlayarak, AsPlainText parametresi kullanılırken Force parametresi gerekli değildir. Ancak Force parametresinin dahil edilmesi, ifadenin ö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çınmalısınız. 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 amacıyla ş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.

Tip :

SwitchParameter

Konum:

1

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Force

PowerShell 7'den başlayarak, AsPlainText parametresi kullanılırken artık Force parametresine gerek yoktur. Parametre kullanılmasa da PowerShell'in önceki sürümleriyle uyumluluk sağlamak için kaldırılmadı.

Tip :

SwitchParameter

Konum:

2

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Key

Orijinal 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.

Tip :

Bayt[]

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-SecureKey

Orijinal 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ülecektir. Geçerli güvenli anahtar uzunlukları 8, 12 ve 16 kod noktasıdır.

Tip :

SecureString

Konum:

1

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-String

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

Tip :

String

Konum:

0

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

Girişler

Dize

Bu cmdlet'e standart şifrelenmiş bir dize aktarabilirsiniz.

Çıkışlar

SecureString

Bu cmdlet, oluşturulan SecureString nesnesini döndürür.

Notlar

İfadeler gibi bazı karakterler, onları içeren dizedeki çeşitli kod noktalarına karşılık gelir. Bu karakterleri kullanmaktan kaçının çünkü şifrede kullanıldığında sorunlara ve yanlış anlamalara neden olabilirler.

İlgili makaleler