암호화된 파일 및 디렉터리 처리

프로그래머 또는 사용자는 디렉터리나 파일을 암호화된 것으로 표시할 수 있습니다. 암호화된 것으로 표시된 파일은 현재 암호화 드라이버를 사용하여 NTFS 파일 시스템에 의해 암호화됩니다. 나중에 파일이 암호화되지 않은 것으로 표시되면 암호가 해독되고 일반 텍스트(보안되지 않은) 상태로 남습니다.

디렉터리 자체는 암호화되지 않습니다. 대신 기본적으로 "암호화된" 디렉터리에서 디렉터리의 모든 새 파일은 생성 시 암호화됩니다. 사용자가 파일을 암호화하지 않으려면 사용자는 특히 새 파일의 상태를 암호 해독되도록 변경해야 합니다. 암호화된 디렉터리가 표시됩니다. 다른 사용자가 디렉터리에 액세스할 수 없도록 하려면 액세스 제어의 표준 메서드를 사용합니다.

암호화 함수는 Backup API와 함께 사용할 수 없습니다.

새 파일을 암호화하려면 FILE_ATTRIBUTE_ENCRYPTED 플래그와 함께 CreateFile 함수를 사용합니다. 기존 파일을 암호화하려면 EncryptFile 함수를 사용합니다. 파일의 모든 데이터 스트림은 암호화됩니다. 파일이 이미 암호화된 경우 EncryptFile은 성공을 나타내는 0이 아닌 값을 반환합니다. 파일이 압축되면 EncryptFile은 파일을 암호화하기 전에 압축을 풉니다.

암호화된 파일의 암호를 해독하려면 DecryptFile 함수를 사용합니다. 파일이 암호화되지 않은 경우 DecryptFile은 성공을 나타내는 0이 아닌 값을 반환합니다.

EncryptionDisable 함수는 표시된 디렉터리와 그 안에 있는 파일의 암호화를 사용하지 않도록 설정하거나 사용하도록 설정합니다. 표시된 디렉터리 아래의 하위 디렉터리 암호화에는 영향을 주지 않습니다.

파일의 암호화 상태를 검색하려면 FileEncryptionStatus 함수를 사용합니다. 또는 GetFileAttributes 함수를 호출하고 반환 값에서 FILE_ATTRIBUTE_ENCRYPTED 플래그를 검사합니다.

CopyFileCopyFileEx는 원본 파일의 암호화에 사용되는 키로 대상 파일을 암호화하려고 시도합니다. 이 작업을 수행할 수 없는 경우 두 함수는 기본 키를 사용하여 대상 파일을 암호화하려고 시도합니다. 이러한 두 메서드를 모두 수행할 수 없는 경우 CopyFileCopyFileExERROR_ENCRYPTION_FAILED 오류로 인해 실패합니다. 대상 파일을 암호화할 수 없는 경우에도 CopyFileEx가 복사 작업을 완료하도록 하려면 CopyFileEx로 호출 시 dwCopyFlags 매개 변수 값에 COPY_FILE_ALLOW_DECRYPTED_DESTINATION 플래그를 포함합니다.