ConvertFrom-SecureString

Konwertuje bezpieczny ciąg na zaszyfrowany ciąg standardowy.

Składnia

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

Opis

Polecenie ConvertFrom-SecureString cmdlet konwertuje bezpieczny ciąg (System.Security.SecureString) na zaszyfrowany ciąg standardowy (System.String). W przeciwieństwie do bezpiecznego ciągu zaszyfrowany ciąg standardowy można zapisać w pliku do późniejszego użycia. Zaszyfrowany ciąg standardowy można przekonwertować z powrotem na bezpieczny format ciągu przy użyciu ConvertTo-SecureString polecenia cmdlet .

Jeśli klucz szyfrowania jest określony przy użyciu parametrów Key lub SecureKey , używany jest algorytm szyfrowania Advanced Encryption Standard (AES). Określony klucz musi mieć długość 128, 192 lub 256 bitów, ponieważ są to długości kluczy obsługiwane przez algorytm szyfrowania AES. Jeśli nie określono żadnego klucza, interfejs API ochrony danych systemu Windows (DPAPI) jest używany do szyfrowania standardowej reprezentacji ciągu.

Uwaga

Należy pamiętać, że na sieć DotNet zawartość protokołu SecureString nie jest szyfrowana w systemach innych niż Windows.

Przykłady

Przykład 1. Tworzenie bezpiecznego ciągu

$SecureString = Read-Host -AsSecureString

To polecenie tworzy bezpieczny ciąg z znaków wpisanych w wierszu polecenia. Po wprowadzeniu polecenia wpisz ciąg, który chcesz przechowywać jako bezpieczny ciąg. Gwiazdka (*) jest wyświetlana w celu reprezentowania każdego wpisanego znaku.

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

$StandardString = ConvertFrom-SecureString $SecureString

To polecenie konwertuje bezpieczny ciąg w zmiennej $SecureString na zaszyfrowany ciąg standardowy. Wynikowy zaszyfrowany ciąg standardowy jest przechowywany w zmiennej $StandardString .

Przykład 3: Konwertowanie bezpiecznego ciągu na zaszyfrowany ciąg standardowy przy użyciu klucza 192-bitowego

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

Te polecenia używają algorytmu Advanced Encryption Standard (AES), aby przekonwertować bezpieczny ciąg przechowywany w $SecureString zmiennej na zaszyfrowany ciąg standardowy z kluczem 192-bitowym. Wynikowy zaszyfrowany ciąg standardowy jest przechowywany w zmiennej $StandardString .

Pierwsze polecenie przechowuje klucz w zmiennej $Key . Klucz jest tablicą 24 liczb dziesiętnych, z których każda musi być mniejsza niż 256, aby zmieścić się w jednym niepodpisanym bajtie.

Ponieważ każda liczba dziesiętna reprezentuje jeden bajt (8 bitów), klucz ma 24 cyfry w sumie 192 bitów (8 x 24). Jest to prawidłowa długość klucza dla algorytmu AES.

Drugie polecenie używa klucza w zmiennej $Key , aby przekonwertować bezpieczny ciąg na zaszyfrowany ciąg standardowy.

Przykład 4. Konwertowanie bezpiecznego ciągu bezpośrednio na ciąg w postaci zwykłego tekstu

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

Parametry

-AsPlainText

Po ustawieniu ConvertFrom-SecureString program konwertuje bezpieczne ciągi na odszyfrowany ciąg w postaci zwykłego tekstu jako dane wyjściowe.

Ten parametr został dodany w programie PowerShell 7.0.

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

-Key

Określa klucz szyfrowania jako tablicę bajtów.

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureKey

Określa klucz szyfrowania jako bezpieczny ciąg. Wartość bezpiecznego ciągu jest konwertowana na tablicę bajtów przed użyciem jako klucza.

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

-SecureString

Określa bezpieczny ciąg do konwersji na zaszyfrowany ciąg standardowy.

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

Dane wejściowe

SecureString

Do tego polecenia cmdlet można przekazać obiekt SecureString .

Dane wyjściowe

String

To polecenie cmdlet zwraca utworzony ciąg zwykłego tekstu.

Uwagi

  • Aby utworzyć bezpieczny ciąg na podstawie znaków wpisanych w wierszu polecenia, użyj parametru AsSecureString polecenia Read-Host cmdlet.
  • Jeśli używasz parametrów Klucz lub SecureKey do określenia klucza, długość klucza musi być poprawna. Na przykład klucz 128 bitów można określić jako tablicę bajtów 16 liczb dziesiętnych. Podobnie klucze 192-bitowe i 256-bitowe odpowiadają tablicom bajtów 24 i 32 liczb dziesiętnych, odpowiednio.
  • Niektóre znaki, takie jak emotikony, odpowiadają kilku punktom kodu w ciągu zawierającym je. Unikaj używania tych znaków, ponieważ mogą powodować problemy i nieporozumienia, gdy są używane w haśle.