Udostępnij za pośrednictwem


ConvertTo-SecureString

Konwertuje zaszyfrowane ciągi standardowe na bezpieczne ciągi. Może również konwertować zwykły tekst na bezpieczne ciągi. Jest on używany z ConvertFrom-SecureString i read-host.

Składnia

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

Opis

Polecenie cmdlet ConvertTo-SecureString konwertuje zaszyfrowane standardowe ciągi na bezpieczne ciągi. Może również konwertować zwykły tekst na bezpieczne ciągi. Jest on używany z ConvertFrom-SecureString i read-host. Bezpieczny ciąg utworzony przez polecenie cmdlet może być używany z poleceniami cmdlet lub funkcjami, które wymagają parametru typu SecureString. Bezpieczny ciąg można przekonwertować z powrotem na zaszyfrowany, standardowy ciąg przy użyciu polecenia cmdlet ConvertFrom-SecureString. Dzięki temu można przechowywać go w pliku do późniejszego użycia.

Jeśli przekonwertowany ciąg standardowy został zaszyfrowany za pomocą ConvertFrom-SecureString przy użyciu określonego klucza, ten sam klucz musi być podany jako wartość klucza lub parametru secureKey polecenia cmdlet ConvertTo-SecureString.

Przykłady

Przykład 1. Konwertowanie bezpiecznego ciągu na zaszyfrowany ciąg

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41 PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString

W tym przykładzie pokazano, jak utworzyć bezpieczny ciąg z danych wejściowych użytkownika, przekonwertować bezpieczny ciąg na zaszyfrowany ciąg standardowy, a następnie przekonwertować zaszyfrowany ciąg standardowy z powrotem na bezpieczny ciąg.

Pierwsze polecenie używa parametru AsSecureString polecenia cmdlet Read-Host w celu utworzenia bezpiecznego ciągu. Po wprowadzeniu polecenia wszystkie znaki, które wpiszesz, są konwertowane na bezpieczny ciąg, a następnie zapisywane w zmiennej $Secure.

Drugie polecenie wyświetla zawartość zmiennej $Secure. Ponieważ zmienna $Secure zawiera bezpieczny ciąg, program Windows PowerShell wyświetla tylko typ System.Security.SecureString.

Trzecie polecenie używa polecenia cmdlet ConvertFrom-SecureString, aby przekonwertować bezpieczny ciąg w zmiennej $Secure na zaszyfrowany ciąg standardowy. Zapisuje wynik w zmiennej $Encrypted.

Czwarte polecenie wyświetla zaszyfrowany ciąg w wartości zmiennej $Encrypted.

Piąte polecenie używa polecenia cmdlet ConvertTo-SecureString, aby przekonwertować zaszyfrowany ciąg standardowy w zmiennej $Encrypted z powrotem na bezpieczny ciąg. Zapisuje wynik w zmiennej $Secure 2. Szóste polecenie wyświetla wartość zmiennej $Secure 2. Typ SecureString wskazuje, że polecenie zakończyło się pomyślnie.

Przykład 2. Tworzenie bezpiecznego ciągu z zaszyfrowanego ciągu w pliku

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
PS C:\> $Encrypted | Set-Content Encrypted.txt
PS C:\> $Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)

W tym przykładzie pokazano, jak utworzyć bezpieczny ciąg na podstawie zaszyfrowanego standardowego ciągu zapisanego w pliku.

Pierwsze polecenie używa parametru AsSecureString polecenia cmdlet Read-Host w celu utworzenia bezpiecznego ciągu. Po wprowadzeniu polecenia wszystkie znaki, które wpiszesz, są konwertowane na bezpieczny ciąg, a następnie zapisywane w zmiennej $Secure.

Drugie polecenie używa polecenia cmdlet ConvertFrom-SecureString, aby przekonwertować bezpieczny ciąg w zmiennej $Secure na zaszyfrowany ciąg standardowy przy użyciu określonego klucza. Zawartość jest zapisywana w zmiennej $Encrypted.

Trzecie polecenie używa operatora potoku (|) do wysyłania wartości zmiennej $Encrypted do polecenia cmdlet Set-Content, które zapisuje wartość w pliku Encrypted.txt.

Czwarte polecenie używa polecenia cmdlet Get-Content do pobrania zaszyfrowanego standardowego ciągu w pliku Encrypted.txt. Polecenie używa operatora potoku do wysyłania zaszyfrowanego ciągu do polecenia cmdlet ConvertTo-SecureString, które konwertuje go na bezpieczny ciąg przy użyciu określonego klucza. Wyniki są zapisywane w zmiennej $Secure 2.

Przykład 3. Konwertowanie ciągu zwykłego tekstu na bezpieczny ciąg

PS C:\> $Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

To polecenie konwertuje ciąg zwykłego tekstu P@ssW0rD! w bezpiecznym ciągu i zapisuje wynik w zmiennej $Secure_String_Pwd. Aby użyć parametru AsPlainText, parametr Force musi być również uwzględniony w poleceniu .

Parametry

-AsPlainText

Określa ciąg zwykłego tekstu, który ma być konwertowany na bezpieczny ciąg. Polecenia cmdlet bezpiecznego ciągu pomagają chronić poufny tekst. Tekst jest szyfrowany pod kątem prywatności i jest usuwany z pamięci komputera po jego użyciu. Jeśli używasz tego parametru do podawania zwykłego tekstu jako danych wejściowych, system nie może chronić tych danych wejściowych w ten sposób. Aby użyć tego parametru, należy również określić parametr Force.

Typ:SwitchParameter
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Force

Potwierdza, że rozumiesz implikacje używania parametru AsPlainText i nadal chcesz go użyć.

Typ:SwitchParameter
Position:2
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Key

Określa klucz szyfrowania, który ma być używany podczas konwertowania bezpiecznego ciągu na zaszyfrowany ciąg standardowy. Prawidłowe długości klucza to 16, 24 i 32 bajty.

Typ:Byte[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SecureKey

Określa klucz szyfrowania, który ma być używany podczas konwertowania bezpiecznego ciągu na zaszyfrowany ciąg standardowy. Klucz musi być podany w formacie bezpiecznego ciągu. Bezpieczny ciąg jest konwertowany na tablicę bajtów przed użyciem jako klucza. Prawidłowe długości klucza to 16, 24 i 32 bajty.

Typ:SecureString
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-String

Określa ciąg, który ma być konwertowany na bezpieczny ciąg.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

Można potokować standardowy zaszyfrowany ciąg do ConvertTo-SecureString.

Dane wyjściowe

SecureString

ConvertTo-SecureString zwraca obiekt SecureString.