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