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);
}