2012-06-13 1 views
1

Je dois déchiffrer une connexion créée initialement sous un compte qui n'est plus disponible.Chiffrer/Décrypter à l'aide de DataProtection.DataProtector C#

Pour ce faire, je fait une application simple:

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

Maintenant, j'ai remarqué que quand je fais un test dans mon ordinateur, et essayer de décrypter le résultat chiffré dans un autre ordinateur que je reçois :

Exception décryptage. Le déchiffrement a échoué. Clé non valide pour une utilisation dans l'état spécifique .

Puis, je l'ai fait des recherches et a découvert ceci:

Avez-vous exporter la clé d'un serveur à l'autre pour qu'ils soient mis en place les mêmes? Si ce n'est pas le cas, vous utilisez des clés incompatibles, ce qui provoque une erreur de chiffrement/déchiffrement.

et je peux trouver les clés ici:

Comment obtenir la valeur de validationKey et de la valeur decryptionKey?

clé de déchiffrement se trouve à "D: \ Documents and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys"

Ma question est la suivante: Si je exporter les clés à cet endroit de mon ordinateur le celui que je veux déchiffrer les données cela fonctionnera-t-il? et par l'exportation signifie juste copier les fichiers clés ou faire une autre opération?

Répondre

1

AFAIK cela n'est pas possible - et en tout cas n'est pas souhaitable. DPAPI crée régulièrement de nouvelles clés, donc même si vous pouviez copier les clés entre les machines, elles deviendraient obsolètes après un certain temps.

Si vous souhaitez décrypter des données sur plusieurs ordinateurs, utilisez une méthode différente, par ex. RSA.

+0

merci pour votre aide Joe – Somebody

Questions connexes