我需要解密最初在不再可用的帳戶下創建的連接。使用DataProtection.DataProtector加密/解密c#
爲了做到這一點我做了一個簡單的應用程序:
private void btnEncrypt_Click(object sender, EventArgs e)
{
DataProtection.DataProtector dp = new DataProtection.DataProtector(DataProtection.DataProtector.Store.USE_MACHINE_STORE);
try
{
byte[] dbToEncrypt = Encoding.ASCII.GetBytes(txtText.Text);
string resultEncrypted = Convert.ToBase64String(dp.Encrypt(dbToEncrypt, null));
txtEncrypt.Text = resultEncrypted;
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void btnDecrypt_Click(object sender, EventArgs e)
{
DataProtection.DataProtector dp = new DataProtection.DataProtector(DataProtection.DataProtector.Store.USE_MACHINE_STORE);
try
{
byte[] dbToDecrypt = Convert.FromBase64String(txtEncrypt.Text);
string resultDecrypted = Encoding.ASCII.GetString(dp.Decrypt(dbToDecrypt, null));
txtDecrypt.Text = resultDecrypted;
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
現在,我已經注意到,當我在我的電腦測試,並試圖解密加密的結果在不同的電腦,我得到:
異常解密。解密失敗。密鑰在 特定狀態下無效。
於是,我做了一些研究,發現了這一點:
你從一臺服務器的密鑰導出到其他所以他們都 設置相同?如果不是,則使用不匹配的密鑰,這將導致加密/解密錯誤。
,我可以在這裏找到鑰匙:
如何得到的validationKey值和decryptionkey價值?
解密密鑰可以在這裏找到 「d:\ Documents和Settings \所有 用戶\應用數據\微軟\加密\ RSA \ MachineKeys的」
所以我的問題是:如果我從我的計算機中導出那個位置的密鑰,我想解密這些數據的密鑰會起作用嗎?並通過出口的意思只是複製密鑰文件或做另一個操作?
感謝您的幫助Joe – Somebody