DPAPI unter C#
Frank Dzaebel, erstellt am: 11.2.2006, zuletzt geändert: 20.5.2006
Kategorie: Verschlüsselung, .NET-Version: 1.1(2.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 mit einer DPAPI-Library.
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 btnEncryptMachine_Click(object sender, System.EventArgs e)
{
// using DataProtection;
DataProtector dpt = new DataProtector(DataProtector.Store.USE_MACHINE_STORE);
byte[] encrypted = dpt.Encrypt(Encoding.UTF8.GetBytes(txtKeyString.Text), entropy);
txtEncrypted.Text = Convert.ToBase64String(encrypted);
}
private void btnEncryptUser_Click(object sender, System.EventArgs e)
{
DataProtector dpt = new DataProtector(DataProtector.Store.USE_USER_STORE);
byte[] encrypted = dpt.Encrypt(Encoding.UTF8.GetBytes(txtKeyString.Text), entropy);
txtEncrypted.Text = Convert.ToBase64String(encrypted);
}
private void btnDecryptUser_Click(object sender, System.EventArgs e)
{
DataProtector dpt = new DataProtector(DataProtector.Store.USE_MACHINE_STORE);
byte[] decrypted = dpt.Decrypt(Convert.FromBase64String(txtEncrypted.Text), entropy);
txtDecrypted.Text = Encoding.UTF8.GetString(decrypted);
}
private void btnDecryptMachine_Click(object sender, System.EventArgs e)
{
DataProtector dpt = new DataProtector(DataProtector.Store.USE_USER_STORE);
byte[] decrypted = dpt.Decrypt(Convert.FromBase64String(txtEncrypted.Text), entropy);
txtDecrypted.Text = Encoding.UTF8.GetString(decrypted);
}