Поиск по сайту:

ConvertFrom-SecureString (Microsoft.PowerShell.Security)


ConvertFrom-SecureString

Модуль:
Microsoft.PowerShell.Security

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

Синтаксис

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.

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

Примечание

Обратите внимание, что согласно DotNet содержимое SecureString не шифруется в системах, отличных от Windows.

Примеры

Пример 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

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Key

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

Тип :

Байт[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SecureKey

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

Тип :

SecureString

Позиция:

1

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-SecureString

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

Тип :

SecureString

Позиция:

0

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

Входы

SecureString

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

Выходы

Строка

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

Примечания

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