MachineKey.Protect(Byte[], String[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 데이터를 암호화하거나 서명하여 보호합니다.
public:
static cli::array <System::Byte> ^ Protect(cli::array <System::Byte> ^ userData, ... cli::array <System::String ^> ^ purposes);
public static byte[] Protect(byte[] userData, params string[] purposes);
static member Protect : byte[] * string[] -> byte[]
Public Shared Function Protect (userData As Byte(), ParamArray purposes As String()) As Byte()
매개 변수
- userData
- Byte[]
보호할 데이터입니다. 이 데이터는 일반 텍스트로 전달됩니다.
- purposes
- String[]
데이터의 용도 목록입니다. 이 값을 지정하면 반환된 암호 텍스트를 해독하기 Unprotect(Byte[], String[]) 위해 동일한 목록을 메서드에 전달해야 합니다.
반환
암호 텍스트 데이터입니다.
예외
매개 변수가 userData null입니다.
목적 배열에는 하나 이상의 공백 전용 항목이 포함됩니다.
설명
이 메서드는 메서드를 Encode 대체합니다. 이 메서드를 사용하려면 호출자가 일반 텍스트 데이터를 암호화, 서명 또는 둘 다 사용해야 하는지를 지정해야 합니다. 이 메서드는 Protect 적절한 작업을 수행하고 데이터를 안전하게 보호합니다. 이 메서드에서 생성된 암호 텍스트 데이터는 메서드에서 Unprotect 만 해독할 수 있습니다.
purposes 매개 변수는 암호화를 특정 용도로 잠글 수 있는 이유의 선택적 목록입니다. 이 매개 변수를 사용하면 애플리케이션 내의 다른 하위 시스템에서 수행하는 암호화 작업을 격리할 수 있습니다. 악의적인 클라이언트는 한 하위 시스템의 메서드 결과를 가져와서 다른 하위 시스템의 ProtectUnprotect 메서드에 입력으로 공급하여 애플리케이션 보안을 손상시킬 수 없습니다. 이 매개 변수는 purposes 보호된 데이터를 원래 생성한 구성 요소에서만 사용할 수 있도록 합니다. 애플리케이션은 각 하위 시스템이 고유한 purposes 목록을 사용하는지 확인해야 합니다.
예를 들어 인증 토큰을 보호하거나 보호 해제하려면 다음 예제와 같은 코드를 사용하여 메서드를 호출할 수 있습니다.
MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")
애플리케이션은 매개 변수를 동적으로 생성할 purposes 수 있습니다. 이 경우 고정 값(예: "Username: " + 사용자 이름)을 사용하여 사용자가 제공한 값을 접두사로 사용하여 시스템의 다른 부분에서 사용되는 토큰과 일치하는 악의적인 클라이언트 생성 입력의 위험을 최소화합니다. 동적으로 생성된 모든 문자열은 고정 문자열 후에 와야 합니다. 예를 들어 특정 사용자에 연결된 프라이빗 메시지를 보호하거나 보호 해제하려면 다음 예제와 같은 코드를 사용합니다.
MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)
메서드가 Unprotect 호출될 때 매개 변수에 purposes 대해 제공되는 값은 메서드에 제공된 Protect 값과 동일해야 합니다. 그렇지 않으면 예외로 작업이 실패합니다 CryptographicException .
이 옵션에 MachineKeyCompatibilityMode.Framework45 필요한 구성 설정은 속성이 옵션으로 설정되지 않은 경우에도 MachineKeySection.CompatibilityMode 이 메서드에 Framework45 필요합니다.