C# - Titkosítási attribútum bekapcsolása, kikapcsolása állományoknál

forráskód letöltése
Windows 2000 alatt, ha NTFS állományrendszert használunk, akkor lehetőségünk van minden állománynál, alkönyvtárnál arra, hogy egy titkosítási attribútumot beállítsunk. Ettől kezdve csak az a felhasználó férhet az adott állomány tartalmához, aki a titkosítást elvégezte. Mostani cikkünkben azt vizsgáljuk, hogy miként tudjuk mindezt elérni programból.
Ehhez az Advapi32.dll rendszer állomány EncryptFile, DecryptFile függvényét kell felhasználnunk. Mivel ezek külső függvények, így importálnunk kell őket a használatukhoz és hogy szép is legyen a megoldás ne csak működőképes, rögtön hozzunk létre hozzá egy új osztályt FileSystem névvel.
  class FileSystem
  {        
Importáláshoz adjuk meg a DLL nevét.
    [DllImport("ADVAPI32")]
Valamint annak deklarációját, ahol az extern-nel jelezzük, hogy külső függvényről van szó.
    static public extern bool EncryptFile(string lpFileName);    
    [DllImport("ADVAPI32")]
    static public extern bool DecryptFile(string lpFileName, Int32 dwReversed);    
  }
Mivel statikusnak deklaráltuk a függvényeinket, így egyszerűen felhasználhatóak. Ha egy állomány titkosítási attribútumát be szeretnénk kapcsolni, akkor hívjuk az EncryptFile függvényt, paraméterként átadva az állomány nevét, elérési útvonallal.
    private void button1_Click(object sender, System.EventArgs e)
    {
      FileSystem.EncryptFile(Application.StartupPath + "\\_secret.txt");      
    }
A titkosítás feloldásához, vagyis az attribútum törléséhez a DecryptFile-t kell meghívnunk, melynek paraméterezése megegyezik az EncryptFile függvénnyel.
    private void button2_Click(object sender, System.EventArgs e)
    {
      FileSystem.DecryptFile(Application.StartupPath + "\\_secret.txt", 0);
    }