DPAPI unter C#
Frank Dzaebel, erstellt am: 11.2.2006, zuletzt geändert:  25.4.2011
Kategorie: Verschlüsselung, .NET-Version: 1.1, 2.0,4.0 [Download]

DPAPI  ist eine Windows-spezifische Verschlüsselungs-API. Während .NET 2.0 diese schon über einfache managed Wrapper bereitstellt, muss sie unter .NET 1.1 noch durch eigenes P/Invoke gebildet werden. Hier ein Demo-Download für .NET 4.0.

Für .NET 2.0 siehe z.B.
DpapiProtectedConfigurationProvider-Klasse.
- Gewusst wie: Verwenden von Datenschutz
ProtectedData-Klasse 




         byte[] entropy = new byte[] { 12, 43, 2, 87, 233 };

        private void btnVerschlüsselnMaschine_Click(object sender, System.EventArgs e)
        {
            byte[] encrypted = ProtectedData.Protect(Encoding.UTF8.GetBytes(txtKeyString.Text),
              entropy, DataProtectionScope.LocalMachine);
            txtVerschlüsselt.Text = Convert.ToBase64String(encrypted);
        }

        private void btnVerschlüsselnBenutzer_Click(object sender, System.EventArgs e)
        {
            byte[] encrypted = ProtectedData.Protect(Encoding.UTF8.GetBytes(txtKeyString.Text),
              entropy, DataProtectionScope.CurrentUser);
            txtVerschlüsselt.Text = Convert.ToBase64String(encrypted);
        }

        private void btnEntschlüsselnBenutzer_Click(object sender, System.EventArgs e)
        {
            byte[] decrypted = ProtectedData.Unprotect(Convert.FromBase64String(txtVerschlüsselt.Text),
              entropy, DataProtectionScope.CurrentUser);
            txtEntschlüsselt.Text = Encoding.UTF8.GetString(decrypted);
        }

        private void btnEntschlüsselnMaschine_Click(object sender, System.EventArgs e)
        {
            byte[] decrypted = ProtectedData.Unprotect(Convert.FromBase64String(txtVerschlüsselt.Text),
              entropy, DataProtectionScope.LocalMachine);
            txtEntschlüsselt.Text = Encoding.UTF8.GetString(decrypted);
        }