ConvertTo-SecureString
암호화된 기본 문자열을 보안 문자열로 변환합니다. 또한 일반 텍스트를 보안 문자열로 변환할 수도 있습니다. 이 cmdlet은 ConvertFrom-SecureString 및 Read-Host와 함께 사용됩니다.
구문
ConvertTo-SecureString [-Key <Byte[]>] [-String] <string> [<CommonParameters>]
ConvertTo-SecureString [-AsPlainText] [-Force] [-String] <string> [<CommonParameters>]
ConvertTo-SecureString [[-SecureKey] <SecureString>] [-String] <string> [<CommonParameters>]
설명
ConvertTo-SecureString cmdlet은 암호화된 기본 문자열을 보안 문자열로 변환합니다. 또한 일반 텍스트를 보안 문자열로 변환할 수도 있습니다. 이 cmdlet은 ConvertFrom-SecureString 및 Read-Host와 함께 사용됩니다. 이 cmdlet으로 생성된 보안 문자열은 SecureString 유형의 매개 변수가 필요한 cmdlet 또는 함수와 함께 사용할 수 있습니다. ConvertFrom-SecureString cmdlet을 사용하여 보안 문자열을 암호화된 기본 문자열로 다시 변환할 수 있습니다. 이렇게 하면 나중에 사용할 수 있도록 파일로 저장할 수 있습니다.
변환할 기본 문자열이 지정된 키를 사용하여 ConvertFrom-SecureString을 통해 암호화된 경우 이 키와 같은 키를 ConvertTo-SecureString cmdlet의 Key 또는 SecureKey 매개 변수 값으로 제공해야 합니다.
매개 변수
-AsPlainText
보안 문자열로 변환할 일반 텍스트 문자열을 지정합니다. 보안 문자열 cmdlet을 사용하면 기밀 텍스트를 보호할 수 있습니다. 이 텍스트는 개인 정보 보호를 위해 암호화되며 사용된 후 컴퓨터 메모리에서 삭제됩니다. 그러나 이 매개 변수를 사용하여 일반 텍스트를 입력으로 제공하면 시스템에서 이러한 방식으로 해당 입력을 보호할 수 없습니다. 이 매개 변수를 사용하려면 Force 매개 변수도 지정해야 합니다.
필수 여부 |
false |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Force
AsPlainText 매개 변수의 영향을 이해하고 그대로 사용할 것임을 확인합니다.
필수 여부 |
false |
위치 |
3 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Key <Byte[]>
보안 문자열을 암호화된 기본 문자열로 변환할 때 사용할 암호화 키를 지정합니다. 유효한 키 길이는 16, 24 및 32바이트입니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SecureKey <SecureString>
보안 문자열을 암호화된 기본 문자열로 변환할 때 사용할 암호화 키를 지정합니다. 제공하는 키는 보안 문자열의 형식이어야 합니다. 보안 문자열은 키로 사용되기 전에 바이트 배열로 변환됩니다. 유효한 키 길이는 16, 24 및 32바이트입니다.
필수 여부 |
false |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-String <string>
보안 문자열로 변환할 문자열을 지정합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.String 암호화된 기본 문자열을 ConvertTo-SecureString으로 파이프할 수 있습니다. |
출력 |
System.Security.SecureString ConvertTo-SecureString은 SecureString 개체를 반환합니다. |
예 1
C:\PS>$secure = read-host -assecurestring
C:\PS> $secure
System.Security.SecureString
C:\PS> $encrypted = convertfrom-securestring -securestring $secure
C:\PS> $encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41
C:\PS> $secure2 = convertto-securestring -string $encrypted
C:\PS> $secure2
System.Security.SecureString
설명
-----------
이 예에서는 사용자 입력에서 보안 문자열을 만들고 보안 문자열을 암호화된 기본 문자열로 변환한 다음 암호화된 기본 문자열을 보안 문자열로 다시 변환하는 방법을 보여 줍니다.
첫 번째 명령은 Read-Host cmdlet의 AsSecureString 매개 변수를 사용하여 보안 문자열을 만듭니다. 명령을 입력한 후 입력한 모든 문자는 보안 문자열로 변환되고 $secure 변수에 저장됩니다.
두 번째 명령은 $secure 변수의 내용을 표시합니다. $secure 변수는 보안 문자열을 포함하므로 Windows PowerShell에서는 System.Security.SecureString 유형만 표시합니다.
세 번째 명령은 ConvertFrom-SecureString cmdlet을 사용하여 $secure 변수의 보안 문자열을 암호화된 기본 문자열로 변환합니다. 결과는 $encrypted 변수에 저장됩니다. 네 번째 명령은 암호화된 문자열을 $encrypted 변수의 값에 표시합니다.
다섯 번째 명령은 ConvertTo-SecureString cmdlet을 사용하여 $encrypted 변수의 암호화된 기본 문자열을 보안 문자열로 다시 변환합니다. 결과는 $secure2 변수에 저장됩니다. 여섯 번째 명령은 $secure2 변수의 값을 표시합니다. SecureString 유형은 명령이 성공했음을 나타냅니다.
예 2
C:\PS>$secure = read-host -assecurestring
C:\PS> $encrypted = convertfrom-securestring -secureString $secure -key (1..16)
C:\PS> $encrypted | set-content encrypted.txt
C:\PS> $secure2 = get-content encrypted.txt | convertto-securestring -key (1..16)
설명
-----------
이 예에서는 파일에 저장된 암호화된 기본 문자열에서 보안 문자열을 만드는 방법을 보여 줍니다.
첫 번째 명령은 Read-Host cmdlet의 AsSecureString 매개 변수를 사용하여 보안 문자열을 만듭니다. 명령을 입력한 후 입력한 모든 문자는 보안 문자열로 변환되고 $secure 변수에 저장됩니다.
두 번째 명령은 지정된 키를 사용하여 ConvertFrom-SecureString cmdlet을 통해 $secure 변수의 보안 문자열을 암호화된 기본 문자열로 변환합니다. 내용은 $encrypted 변수에 저장됩니다.
세 번째 명령은 파이프라인 연산자(|)를 사용하여 $encrypted 변수의 값을 Set-Content cmdlet으로 보냅니다. 해당 값은 Encrypted.txt 파일에 저장됩니다.
네 번째 명령은 Get-Content cmdlet을 사용하여 Encrypted.txt 파일에 있는 암호화된 기본 문자열을 가져옵니다. 이 명령은 파이프라인 연산자를 사용하여 암호화된 문자열을 ConvertTo-SecureString cmdlet으로 보냅니다. 그러면 cmdlet은 지정된 키를 사용하여 암호화된 문자열을 보안 문자열로 변환합니다. 결과는 $secure2 변수에 저장됩니다.
예 3
C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force
설명
-----------
이 명령은 일반 텍스트 문자열 "P@ssW0rD!"를 보안 문자열로 변환하고 결과를 $secure_string_pwd 변수에 저장합니다. AsPlainText 매개 변수를 사용하려면 Force 매개 변수도 명령에 포함되어야 합니다.