Condividi tramite


Gestione di file e directory crittografati

Un programmatore o un utente può contrassegnare una directory o un file come crittografato. Un file contrassegnato come crittografato viene crittografato dal file system NTFS usando il driver di crittografia corrente. Se in un secondo momento il file viene contrassegnato come non crittografato, viene decrittografato e lasciato in uno stato di testo normale (non protetto).

Le directory non sono crittografate. Per impostazione predefinita, in una directory "crittografata" tutti i nuovi file nella directory vengono crittografati al momento della creazione. Un utente deve modificare in modo specifico lo stato di un nuovo file in modo da decrittografare se l'utente non vuole che il file venga crittografato. Una directory crittografata è visibile. Per rendere una directory inaccessibile ad altri utenti, usare i metodi standard di controllo di accesso.

Le funzioni di crittografia non possono essere usate con l'API di backup .

Per crittografare un nuovo file, usare la funzione CreateFile con il flag FILE_ATTRIBUTE_ENCRYPTED. Per crittografare un file esistente, usare la funzioneencryptFile. Tutti i flussi di dati nel file vengono crittografati. Se il file è già crittografato, EncryptFile non esegue alcuna operazione ma restituisce un valore diverso da zero, che indica l'esito positivo. Se il file è compresso, EncryptFile decomprime il file prima di crittografarlo.

Per decrittografare un file crittografato, usare la funzioneDecryptFile. Se il file non è crittografato, DecryptFile non esegue alcuna operazione, ma restituisce un valore diverso da zero che indica l'esito positivo.

La funzioneEncryptionDisabledisabilita o abilita la crittografia della directory indicata e i file in esso contenuti. Non influisce sulla crittografia delle sottodirectory sotto la directory indicata.

Per recuperare lo stato di crittografia di un file, usare la funzione FileEncryptionStatus. In alternativa, chiamare la funzione GetFileAttributes ed esaminare il flag FILE_ATTRIBUTE_ENCRYPTED nel valore restituito.

CopyFile e CopyFileEx tentare di crittografare il file di destinazione con le chiavi usate nella crittografia del file di origine. Se non è possibile eseguire questa operazione, entrambe le funzioni tentano di crittografare il file di destinazione con chiavi predefinite. Se non è possibile eseguire entrambi questi metodi, CopyFile e CopyFileEx hanno esito negativo con un errore di ERROR_ENCRYPTION_FAILED. Se si desidera CopyFileEx completare l'operazione di copia anche quando il file di destinazione non può essere crittografato, includere il flag COPY_FILE_ALLOW_DECRYPTED_DESTINATION nel valore del parametro dwCopyFlags nella chiamata a CopyFileEx.