다음을 통해 공유


ConvertFrom-SecureString

보안 문자열을 암호화된 표준 문자열로 변환합니다.

구문

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

Description

ConvertFrom-SecureString cmdlet은 보안 문자열(System.Security.SecureString)을 암호화된 표준 문자열(System.String)으로 변환합니다. 보안 문자열과 달리 암호화된 표준 문자열은 나중에 사용하기 위해 파일에 저장할 수 있습니다. 암호화된 표준 문자열은 ConvertTo-SecureString cmdlet을 사용하여 보안 문자열 형식으로 다시 변환할 수 있습니다.

또는 SecureKey 매개 변수를 사용하여 암호화 키를 지정하는 경우 AES(Advanced Encryption Standard) 암호화 알고리즘이 사용됩니다. AES 암호화 알고리즘에서 지원하는 키 길이이므로 지정된 키의 길이는 128, 192 또는 256비트여야 합니다. 키가 지정되지 않은 경우 Windows DPAPI(Data Protection API)를 사용하여 표준 문자열 표현을 암호화합니다.

메모

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(Advanced Encryption Standard) 알고리즘을 사용하여 $SecureString 변수에 저장된 보안 문자열을 192비트 키가 있는 암호화된 표준 문자열로 변환합니다. 생성된 암호화된 표준 문자열은 $StandardString 변수에 저장됩니다.

첫 번째 명령은 $Key 변수에 키를 저장합니다. 키는 24개의 소수 자릿수 배열이며, 각각은 부호 없는 단일 바이트 내에 맞도록 256보다 작아야 합니다.

각 10진수는 단일 바이트(8비트)를 나타내므로 키는 총 192비트(8 x 24)에 대해 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

SecureString 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

String

이 cmdlet은 생성된 일반 텍스트 문자열을 반환합니다.

참고

  • 명령 프롬프트에 입력된 문자에서 보안 문자열을 만들려면 Read-Host cmdlet의 AsSecureString 매개 변수를 사용합니다.
  • 또는 SecureKey 매개 변수를 사용하여 키를 지정하는 경우 키 길이가 정확해야 합니다. 예를 들어 128비트의 키를 16진수의 바이트 배열로 지정할 수 있습니다. 마찬가지로 192비트 및 256비트 키는 각각 24 및 32 소수 숫자의 바이트 배열에 해당합니다.
  • 이모티콘과 같은 일부 문자는 해당 문자가 포함된 문자열의 여러 코드 포인트에 해당합니다. 이러한 문자는 암호에 사용될 때 문제 및 오해를 일으킬 수 있으므로 사용하지 마세요.