Sdílet prostřednictvím


Zpracování šifrovaných souborů a adresářů

Programátor nebo uživatel může označit adresář nebo soubor jako zašifrovaný. Soubor označený zašifrovaným systémem souborů NTFS je šifrovaný pomocí aktuálního ovladače šifrování. Pokud se soubor později označí jako nezašifrovaný, dešifruje se a ponechá v nezabezpečeném stavu prostého textu.

Adresáře se nešifrují. Ve výchozím nastavení jsou v "zašifrovaném" adresáři všechny nové soubory zašifrované již při vytváření. Uživatel musí konkrétně změnit stav nového souboru na dešifrovaný, pokud uživatel nechce, aby byl soubor zašifrovaný. Je viditelný šifrovaný adresář. Pokud chcete adresář učinit nepřístupným pro ostatní uživatele, použijte standardní metody řízení přístupu.

Funkce šifrování nelze použít s rozhraním API Backup.

K šifrování nového souboru použijte funkci CreateFile s příznakem FILE_ATTRIBUTE_ENCRYPTED. K šifrování existujícího souboru použijte funkci EncryptFile. Všechny datové proudy v souboru jsou šifrované. Pokud je soubor již zašifrovaný, EncryptFile nic nedělá, ale vrátí nenulovou hodnotu, která značí úspěch. Pokud je soubor komprimovaný, EncryptFile soubor před zašifrováním dekomprimuje.

K dešifrování šifrovaného souboru použijte funkci DecryptFile. Pokud soubor není zašifrovaný, DecryptFile nic nedělá, ale vrátí nenulovou hodnotu označující úspěch.

Funkce EncryptionDisable zakáže nebo povolí šifrování uvedeného adresáře a souborů v něm. Nemá vliv na šifrování podadresářů pod uvedeným adresářem.

Pokud chcete načíst stav šifrování souboru, použijte funkci FileEncryptionStatus. Alternativně volejte funkci GetFileAttributes a prozkoumejte příznak FILE_ATTRIBUTE_ENCRYPTED ve návratové hodnotě.

CopyFile a CopyFileEx se pokoušejí zašifrovat cílový soubor pomocí klíčů použitých při šifrování zdrojového souboru. Pokud to nejde udělat, obě funkce se pokusí šifrovat cílový soubor s výchozími klíči. Pokud nelze provést obě tyto metody, CopyFile a CopyFileEx selžou s chybou ERROR_ENCRYPTION_FAILED. Chcete-li CopyFileEx dokončit operaci kopírování i v případě, že cílový soubor nelze zašifrovat, zahrňte příznak COPY_FILE_ALLOW_DECRYPTED_DESTINATION do hodnoty parametru dwCopyFlags ve volání CopyFileEx.