Поделиться через


ConvertFrom-SecureString

Преобразует безопасную строку в зашифрованную стандартную строку.

Синтаксис

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

Описание

Командлет ConvertFrom-SecureString преобразует безопасную строку (System.Security.SecureString) в зашифрованную стандартную строку (System.String). В отличие от безопасной строки зашифрованная стандартная строка может быть сохранена в файле для последующего использования. Зашифрованная стандартная строка может быть преобразована обратно в безопасный формат строки с помощью командлета ConvertTo-SecureString.

Если ключ шифрования указан с помощью параметров Ключ или SecureKey, используется алгоритм шифрования Advanced Encryption Standard (AES). Указанный ключ должен иметь длину 128, 192 или 256 бит, так как это длина ключа, поддерживаемая алгоритмом шифрования AES. Если ключ не указан, API защиты данных Windows (DPAPI) используется для шифрования стандартного строкового представления.

Заметка

Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.

Примеры

Пример 1. Создание безопасной строки

$SecureString = Read-Host -AsSecureString

Эта команда создает безопасную строку из символов, введенных в командной строке. После ввода команды введите строку, которую вы хотите сохранить в виде безопасной строки. Звездочка (*) отображается для представления каждого символа, который вы вводите.

Пример 2. Преобразование безопасной строки в зашифрованную стандартную строку

$StandardString = ConvertFrom-SecureString $SecureString

Эта команда преобразует безопасную строку в переменную $SecureString в зашифрованную стандартную строку. Полученная зашифрованная стандартная строка хранится в переменной $StandardString.

Пример 3. Преобразование безопасной строки в зашифрованную стандартную строку с 192-разрядным ключом

$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

Эти команды используют алгоритм расширенного шифрования (AES) для преобразования защищенной строки, хранящейся в переменной $SecureString, в зашифрованную стандартную строку с 192-разрядным ключом. Полученная зашифрованная стандартная строка хранится в переменной $StandardString.

Первая команда сохраняет ключ в переменной $Key. Ключ — это массив из 24 десятичных числовых значений, каждый из которых должен быть меньше 256, чтобы поместиться в один байт без знака.

Так как каждое десятичное число представляет один байт (8 бит), ключ имеет 24 цифры в общей сложности 192 бит (8 x 24). Это допустимая длина ключа для алгоритма AES.

Вторая команда использует ключ в переменной $Key для преобразования безопасной строки в зашифрованную стандартную строку.

Пример 4. Преобразование безопасной строки непосредственно в строку обычного текста

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

Параметры

-AsPlainText

При установке ConvertFrom-SecureString преобразует безопасные строки в расшифрованную строку открытого текста в виде выходных данных.

Этот параметр был добавлен в PowerShell 7.0.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Key

Указывает ключ шифрования в виде массива байтов.

Тип:Byte[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SecureKey

Указывает ключ шифрования как безопасную строку. Безопасное строковое значение преобразуется в массив байтов перед использованием в качестве ключа.

Тип:SecureString
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SecureString

Указывает безопасную строку для преобразования в зашифрованную стандартную строку.

Тип:SecureString
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

Входные данные

SecureString

Вы можете передать объект SecureString в этот командлет.

Выходные данные

String

Этот командлет возвращает созданную строку обычного текста.

Примечания

  • Чтобы создать безопасную строку символов, вводимых в командной строке, используйте параметр AsSecureString для командлета Read-Host.
  • При использовании параметров Key или SecureKey для указания ключа длина ключа должна быть правильной. Например, ключ из 128 битов можно указать в виде массива байтов из 16 десятичных числовых чисел. Аналогичным образом 192-разрядные и 256-разрядные ключи соответствуют массивам байтов 24 и 32 десятичных чисел соответственно.
  • Некоторые символы, такие как смайлики, соответствуют нескольким точкам кода в строке, содержащей их. Избегайте использования этих символов, так как они могут вызвать проблемы и недоразумения при использовании в пароле.