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


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) для шифрования представления стандартной строки.

Примечание

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

Примеры

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

$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.

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

-Key

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

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

-SecureKey

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

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

-SecureString

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

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

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

SecureString

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

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

String

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

Примечания

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