DPAPI (데이터 보호 API)는 원하는 작업을 정확하게 수행합니다. 컴퓨터의 자격 증명이나 사용자 (더 나은)를 암호화 키로 사용하여 임의의 데이터를 대칭 적으로 암호화합니다. 키 관리에 대해 걱정할 필요가 없습니다. Windows가이를 처리합니다. 사용자가 암호를 변경하면 Windows는 사용자의 새 암호를 사용하여 데이터를 다시 암호화합니다.
DPAPI는 System.Security.Cryptography.ProtectedData 클래스와 .NET 노출되어
가
byte[] plaintextBytes = GetDataToProtect();
byte[] encodedBytes = ProtectedData.Protect(plaintextBytes, null, DataProtectionScope.CurrentUser);
프로텍트 방법의 두 번째 파라미터는 추가적인 애플리케이션으로 사용할 수있는 선택 엔트로피 바이트 배열이며 - 특정 "비밀". , DPAPI가 (here 설명 된대로) 당신이 장소에서 암호화 된 데이터를 저장해야하지만, 로밍 프로필을 제대로 작동
byte[] encodedBytes = GetDataToUnprotect();
byte[] plaintextBytes = ProtectedData.Unprotect(encodedBytes, null, DataProtectionScope.CurrentUser);
(네트워크 공유 :
는 해독 ProtectedData.Unprotect 호출을 사용하려면 IsolatedStorage (IsolatedStorageScope.Roaming 등)를 사용하여 다양한 시스템에서 액세스 할 수 있습니다.
자세한 내용은 MSDN의 ProtectedData 클래스를 참조하십시오. DPAPI 백서 here이 있습니다. 원하는 정보보다 많은 정보가 있습니다.
그냥 후손을 위해, 당신은 어딘가에 더 "대중"(적어도 예를 들어 인트라넷) 그래서 그들은에서 얻을 수 있습니다 지속 처리하기 위해 다른 코드에보고해야합니다 다른 기계. 일반적으로 Environment.SpecialFolder.ApplicationData를 사용하여 컴퓨터 및 사용자 별 위치를 가져올 수 있습니다. –
답변 주셔서 감사합니다. 이것이 1.1에서 어떻게 이루어질 수 있는지 알고 있습니까? ProtectedData는 .NET 2.0의 새로운 기능입니다. –
.NET 1.1에서 DPAPI를 사용하려면 P/Invoke를 사용해야합니다.꽤 완벽한 실행을 보려면 여기를 참조하십시오. http://msdn.microsoft.com/en-us/library/aa302402.aspx –