Share via


Behandeln verschlüsselter Dateien und Verzeichnisse

Ein Programmierer oder Benutzer kann ein Verzeichnis oder eine Datei als verschlüsselt markieren. Eine als verschlüsselt markierte Datei wird vom NTFS-Dateisystem mit dem aktuellen Verschlüsselungstreiber verschlüsselt. Wenn die Datei zu einem späteren Zeitpunkt als nicht verschlüsselt markiert wird, wird sie entschlüsselt und in einem Nur-Text-Zustand (ungesichert) belassen.

Verzeichnisse werden selbst nicht verschlüsselt. Stattdessen werden in einem "verschlüsselten" Verzeichnis standardmäßig alle neuen Dateien im Verzeichnis bei der Erstellung verschlüsselt. Ein Benutzer muss die status einer neuen Datei in entschlüsselt ändern, wenn der Benutzer nicht möchte, dass die Datei verschlüsselt wird. Ein verschlüsseltes Verzeichnis ist sichtbar. Verwenden Sie die Standardmethoden der Zugriffssteuerung, um ein Verzeichnis für andere Benutzer unzugänglich zu machen.

Die Verschlüsselungsfunktionen können nicht mit der Sicherungs-API verwendet werden.

Verwenden Sie zum Verschlüsseln einer neuen Datei die CreateFile-Funktion mit dem flag FILE_ATTRIBUTE_ENCRYPTED . Um eine vorhandene Datei zu verschlüsseln, verwenden Sie die Funktion EncryptFile . Alle Datenströme in der Datei werden verschlüsselt. Wenn die Datei bereits verschlüsselt ist, tut EncryptFile nichts, sondern gibt einen wert ohne Zero zurück, was auf Erfolg hinweist. Wenn die Datei komprimiert ist, dekomprimiert EncryptFile die Datei, bevor sie verschlüsselt wird.

Um eine verschlüsselte Datei zu entschlüsseln, verwenden Sie die DecryptFile-Funktion . Wenn die Datei nicht verschlüsselt ist, tut DecryptFile nichts, sondern gibt einen Wert von nonzero zurück, der den Erfolg angibt.

Die EncryptionDisable-Funktion deaktiviert oder aktiviert die Verschlüsselung des angegebenen Verzeichnisses und der darin enthaltenen Dateien. Dies wirkt sich nicht auf die Verschlüsselung von Unterverzeichnissen unterhalb des angegebenen Verzeichnisses aus.

Verwenden Sie die Funktion FileEncryptionStatus, um die Verschlüsselung status einer Datei abzurufen. Rufen Sie alternativ die GetFileAttributes-Funktion auf, und untersuchen Sie das FILE_ATTRIBUTE_ENCRYPTED-Flag im Rückgabewert.

CopyFile und CopyFileEx versuchen, die Zieldatei mit den Schlüsseln zu verschlüsseln, die bei der Verschlüsselung der Quelldatei verwendet werden. Wenn dies nicht möglich ist, versuchen beide Funktionen, die Zieldatei mit Standardschlüsseln zu verschlüsseln. Wenn beide Methoden nicht ausgeführt werden können, schlagen CopyFile und CopyFileEx mit einem ERROR_ENCRYPTION_FAILED Fehler fehl. Wenn CopyFileEx den Kopiervorgang abschließen soll, auch wenn die Zieldatei nicht verschlüsselt werden kann, fügen Sie das COPY_FILE_ALLOW_DECRYPTED_DESTINATION-Flag in den Wert des dwCopyFlags-Parameters in Ihren Aufruf von CopyFileEx ein.