다음을 통해 공유


ConvertFrom-SecureString

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

Syntax

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

Description

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

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

참고 항목

DotNetSecureString의 콘텐츠는 비 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에 추가되었습니다.

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

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

출력

String

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

참고

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