ConvertTo-SecureString
일반 텍스트 또는 암호화된 문자열을 보안 문자열로 변환합니다.
Syntax
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Description
cmdlet은 ConvertTo-SecureString
암호화된 표준 문자열을 보안 문자열로 변환합니다. 또한 일반 텍스트를 보안 문자열로 변환할 수도 있습니다. 및 .와 함께 ConvertFrom-SecureString
Read-Host
사용됩니다. cmdlet에서 만든 보안 문자열은 SecureString 형식 의 매개 변수가 필요한 cmdlet 또는 함수와 함께 사용할 수 있습니다. 보안 문자열은 cmdlet을 사용하여 ConvertFrom-SecureString
암호화된 표준 문자열로 다시 변환할 수 있습니다. 이렇게 하면 나중에 사용할 수 있도록 파일에 저장할 수 있습니다.
변환되는 표준 문자열이 지정된 키를 사용하여 암호화된 ConvertFrom-SecureString
경우 해당 키는 cmdlet의 Key 또는 SecureKey 매개 변수 ConvertTo-SecureString
값으로 제공해야 합니다.
참고 항목
DotNet당 SecureString의 콘텐츠는 비 Windows 시스템에서 암호화되지 않습니다.
예제
예제 1: 보안 문자열을 암호화된 문자열로 변환
이 예제에서는 사용자 입력에서 보안 문자열을 만들고, 보안 문자열을 암호화된 표준 문자열로 변환한 다음, 암호화된 표준 문자열을 다시 보안 문자열로 변환하는 방법을 보여 줍니다.
PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString
첫 번째 명령은 cmdlet의 Read-Host
AsSecureString 매개 변수를 사용하여 보안 문자열을 만듭니다. 명령을 입력하면 입력한 모든 문자가 보안 문자열로 변환된 다음 변수에 $Secure
저장됩니다.
두 번째 명령은 변수의 $Secure
내용을 표시합니다. 변수에 $Secure
보안 문자열이 포함되어 있으므로 PowerShell은 System.Security.SecureString 형식만 표시합니다.
세 번째 명령은 cmdlet을 ConvertFrom-SecureString
사용하여 변수의 보안 문자열을 $Secure
암호화된 표준 문자열로 변환합니다. 결과를 변수에 $Encrypted
저장합니다.
네 번째 명령은 변수 값에 암호화된 문자열을 $Encrypted
표시합니다.
다섯 번째 명령은 cmdlet을 ConvertTo-SecureString
사용하여 변수의 암호화된 표준 문자열을 $Encrypted
다시 보안 문자열로 변환합니다. 결과를 변수에 $Secure2
저장합니다.
여섯 번째 명령은 변수의 $Secure2
값을 표시합니다. SecureString 형식은 명령이 성공했음을 나타냅니다.
예제 2: 파일의 암호화된 문자열에서 보안 문자열 만들기
이 예제에서는 파일에 저장된 암호화된 표준 문자열에서 보안 문자열을 만드는 방법을 보여 줍니다.
$Secure = Read-Host -AsSecureString
$Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
$Encrypted | Set-Content Encrypted.txt
$Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)
첫 번째 명령은 cmdlet의 Read-Host
AsSecureString 매개 변수를 사용하여 보안 문자열을 만듭니다. 명령을 입력하면 입력한 모든 문자가 보안 문자열로 변환된 다음 변수에 $Secure
저장됩니다.
두 번째 명령은 cmdlet을 사용하여 ConvertFrom-SecureString
지정된 키를 사용하여 변수의 $Secure
보안 문자열을 암호화된 표준 문자열로 변환합니다. 내용은 변수에 $Encrypted
저장됩니다.
세 번째 명령은 파이프라인 연산자(|
)를 사용하여 변수 값을 $Encrypted
cmdlet으로 Set-Content
보내 Encrypted.txt 파일에 값을 저장합니다.
네 번째 명령은 cmdlet을 Get-Content
사용하여 Encrypted.txt 파일에서 암호화된 표준 문자열을 가져옵니다. 이 명령은 파이프라인 연산자를 사용하여 암호화된 문자열 ConvertTo-SecureString
을 cmdlet에 보내며 지정된 키를 사용하여 보안 문자열로 변환합니다.
결과는 변수에 $Secure2
저장됩니다.
예제 3: 일반 텍스트 문자열을 보안 문자열로 변환
이 명령은 일반 텍스트 문자열을 보안 문자열 P@ssW0rD!
로 변환하고 결과를 변수에 $Secure_String_Pwd
저장합니다.
PowerShell 7부터 AsPlainText 매개 변수를 사용하는 경우 Force 매개 변수가 필요하지 않습니다. 그러나 Force 매개 변수를 포함하면 문이 이전 버전과 호환됩니다.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
주의
스크립트 또는 명령줄에서 일반 텍스트 문자열을 사용하지 않아야 합니다. 일반 텍스트는 이벤트 로그 및 명령 기록 로그에 표시할 수 있습니다.
매개 변수
-AsPlainText
보안 문자열로 변환할 일반 텍스트 문자열을 지정합니다. 보안 문자열 cmdlet을 사용하여 기밀 텍스트를 보호할 수 있습니다. 텍스트는 개인 정보 보호를 위해 암호화되고 사용된 후 컴퓨터 메모리에서 삭제됩니다. 이 매개 변수를 사용하여 일반 텍스트를 입력으로 제공하는 경우 시스템은 이러한 방식으로 해당 입력을 보호할 수 없습니다.
Type: | SwitchParameter |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
PowerShell 7부터 AsPlainText 매개 변수를 사용하는 경우 Force 매개 변수가 더 이상 필요하지 않습니다. 매개 변수는 사용되지 않지만 이전 버전의 PowerShell과의 호환성을 제공하기 위해 제거되지 않았습니다.
Type: | SwitchParameter |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Key
원래 보안 문자열을 암호화된 표준 문자열로 변환하는 데 사용되는 암호화 키를 지정합니다. 유효한 키 길이는 16, 24 및 32바이트입니다.
Type: | Byte[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureKey
원래 보안 문자열을 암호화된 표준 문자열로 변환하는 데 사용되는 암호화 키를 지정합니다. 키는 보안 문자열 형식으로 제공해야 합니다. 보안 문자열은 키로 사용할 바이트 배열로 변환됩니다. 유효한 보안 키 길이는 8, 12 및 16 코드 포인트입니다.
Type: | SecureString |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-String
보안 문자열로 변환할 문자열을 지정합니다.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
입력
표준 암호화된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
이 cmdlet은 만든 SecureString 개체를 반환합니다.
참고
이모티콘과 같은 일부 문자는 해당 문자가 포함된 문자열의 여러 코드 포인트에 해당합니다. 이러한 문자는 암호에 사용될 때 문제 및 오해를 일으킬 수 있으므로 사용하지 마세요.
관련 링크
PowerShell