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