ConvertFrom-SecureString (Microsoft.PowerShell.Security)
ConvertFrom-SecureString
- Модуль:
- Microsoft.PowerShell.Security
Преобразует защищенную строку в зашифрованную стандартную строку.
Синтаксис
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, используется алгоритм шифрования Advanced Encryption Standard (AES). Указанный ключ должен иметь длину 128, 192 или 256 бит, поскольку именно такие длины ключей поддерживаются алгоритмом шифрования AES. Если ключ не указан, для шифрования стандартного строкового представления используется API защиты данных Windows (DPAPI).
Примечание
Обратите внимание, что согласно DotNet содержимое 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
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Key
Указывает ключ шифрования в виде массива байтов.
- Тип :
Байт[]
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-SecureKey
Указывает ключ шифрования в виде защищенной строки. Значение защищенной строки преобразуется в массив байтов перед использованием в качестве ключа.
- Тип :
SecureString
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-SecureString
Указывает безопасную строку для преобразования в зашифрованную стандартную строку.
- Тип :
SecureString
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
Входы
SecureString
В этот командлет можно передать объект SecureString.
Выходы
Строка
Этот командлет возвращает созданную текстовую строку.
Примечания
- Чтобы создать безопасную строку из символов, введенных в командной строке, используйте параметр AsSecureString командлета
Read-Host. - При использовании параметров Key или SecureKey для указания ключа длина ключа должна быть правильной. Например, ключ длиной 128 бит можно указать как массив байтов из 16 десятичных цифр. Аналогично, 192-битные и 256-битные ключи соответствуют массивам байтов из 24 и 32 десятичных цифр соответственно.
- Некоторые символы, например смайлы, соответствуют нескольким кодовым точкам в строке, которая их содержит. Избегайте использования этих символов, поскольку они могут вызвать проблемы и недоразумения при использовании в пароле.