Menangani File dan Direktori Terenkripsi

Programmer atau pengguna dapat menandai direktori atau file sebagai terenkripsi. File yang ditandai terenkripsi dienkripsi oleh sistem file NTFS dengan menggunakan driver enkripsi saat ini. Jika nanti file ditandai sebagai tidak dienkripsi, file didekripsi dan dibiarkan dalam status teks biasa (tidak aman).

Direktori tidak dienkripsi sendiri. Sebaliknya, secara default, dalam direktori "terenkripsi" semua file baru di direktori dienkripsi saat pembuatan. Pengguna harus secara khusus mengubah status file baru untuk didekripsi jika pengguna tidak ingin file dienkripsi. Direktori terenkripsi terlihat. Untuk membuat direktori tidak dapat diakses oleh pengguna lain, gunakan metode standar kontrol akses.

Fungsi enkripsi tidak dapat digunakan dengan API Backup.

Untuk mengenkripsi file baru, gunakan fungsi CreateFile dengan bendera FILE_ATTRIBUTE_ENCRYPTED . Untuk mengenkripsi file yang ada, gunakan fungsi EncryptFile . Semua aliran data dalam file dienkripsi. Jika file sudah dienkripsi, EncryptFile tidak melakukan apa pun selain mengembalikan nilai bukan nol, yang menunjukkan keberhasilan. Jika file dikompresi, EncryptFile akan mendekompresi file sebelum mengenkripsinya.

Untuk mendekripsi file terenkripsi, gunakan fungsi DecryptFile . Jika file tidak dienkripsi, DecryptFile tidak melakukan apa pun selain mengembalikan nilai bukan nol yang menunjukkan keberhasilan.

Fungsi EncryptionDisable menonaktifkan atau mengaktifkan enkripsi direktori yang ditunjukkan dan file di dalamnya. Ini tidak mempengaruhi enkripsi subdirektori di bawah direktori yang ditunjukkan.

Untuk mengambil status enkripsi file, gunakan fungsi FileEncryptionStatus . Atau, panggil fungsi GetFileAttributes dan periksa bendera FILE_ATTRIBUTE_ENCRYPTED dalam nilai yang dikembalikan.

CopyFile dan CopyFileEx mencoba mengenkripsi file tujuan dengan kunci yang digunakan dalam enkripsi file sumber. Jika ini tidak dapat dilakukan, kedua fungsi mencoba mengenkripsi file tujuan dengan kunci default. Jika kedua metode ini tidak dapat dilakukan, CopyFile dan CopyFileEx gagal dengan kesalahan ERROR_ENCRYPTION_FAILED . Jika Anda ingin CopyFileEx menyelesaikan operasi salin bahkan ketika file tujuan tidak dapat dienkripsi, sertakan bendera COPY_FILE_ALLOW_DECRYPTED_DESTINATION dalam nilai parameter dwCopyFlags dalam panggilan Anda ke CopyFileEx.