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


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 .

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

Примечание.

Обратите внимание, что содержимое 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
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 десятичных чисел соответственно.
  • Некоторые символы, такие как смайлики, соответствуют нескольким точкам кода в строке, содержащей их. Избегайте использования этих символов, так как они могут вызвать проблемы и недоразумения при использовании в пароле.