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
.
Если ключ шифрования указан с помощью параметров Ключ или SecureKey, используется алгоритм шифрования Advanced Encryption Standard (AES). Указанный ключ должен иметь длину 128, 192 или 256 бит, так как это длина ключа, поддерживаемая алгоритмом шифрования AES. Если ключ не указан, API защиты данных Windows (DPAPI) используется для шифрования стандартного строкового представления.
Заметка
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.
Примеры
Пример 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