J'ai besoin de stocker des données cryptées (quelques petites chaînes) entre les exécutions d'application. Je ne veux pas que l'utilisateur fournisse une phrase secrète à chaque fois qu'il lance l'application. C'est à dire. après tout, il revient à stocker en toute sécurité les clés de chiffrement.Stockage persistant de données cryptées à l'aide de .Net
Je regardais RSACryptoServiceProvider et en utilisant PersistentKeyInCsp, mais je ne suis pas sûr comment cela fonctionne. Le conteneur de clés est-il persistant entre les exécutions de l'application ou les redémarrages de la machine? Si oui, est-ce spécifique à l'utilisateur ou spécifique à la machine? C'est à dire. Si je stocke mes données cryptées dans le profil itinérant de l'utilisateur, puis-je déchiffrer les données si l'utilisateur se connecte sur une machine différente?
Si ce qui précède ne fonctionne pas, quelles sont mes options (j'ai besoin de traiter les profils itinérants).
Juste pour la postérité, vous devrez regarder dans un autre code pour gérer la persistance quelque part plus « public » (au moins sur votre intranet par exemple) afin qu'ils puissent y accéder depuis autres machines. Normalement, vous pouvez utiliser Environment.SpecialFolder.ApplicationData pour obtenir un emplacement spécifique à la machine et à l'utilisateur. –
Merci pour la réponse, cela devrait fonctionner. Avez-vous une idée de comment cela peut être fait dans 1.1.? ProtectedData est nouveau pour .Net 2.0 –
Pour utiliser DPAPI dans .NET 1.1, vous devez utiliser P/Invoke.Voir ici pour une complète passation complète: http://msdn.microsoft.com/en-us/library/aa302402.aspx –