2010-10-01 12 views
3

Est-il possible de chiffrer une seule valeur ou faut-il chiffrer des sections entières?Chiffrer une seule clé dans la section appsettings du fichier App.Config

I.e. Compte tenu de l'app.config ci-dessous peut comment puis-je chiffrer juste le mot de passe. J'ai lu des articles sur le cryptage des sections de chaînes de connexion et des sections entières de app.config.

<?xml version="1.0"?> 
<configuration> 
<appSettings> 
<add key="Interval" value="40000" /> 
<add key="User" value="User1" /> 
<add key="Password" value="boombox" /> ... 

Si vous avez des suggestions qu'ils seraient grandement appréciés

+1

Vous pouvez toujours le crypter vous-même, le stocker sous forme cryptée et le déchiffrer en cas de besoin; mais il n'y a pas de support direct pour cela dans le système de configuration .NET (qui ne fonctionne que par section) –

+0

Merci, ouais c'est la partie évidente que j'ai laissée hors de ma question. Si, comme vous le dites, il y avait un soutien direct dans le système de configuration .net pour le faire. – user48408

Répondre

3

Vous devez crypter/décrypter avant d'enregistrer/après le chargement du fichier de paramètres. Regardez le System.Security.Cryptography Namespace. J'ai utilisé le fournisseur DES pour lire/écrire un mot de passe dans le fichier de paramètres.

1

Vous pouvez crypter un mot de passe dans un app.config en utilisant DPAPI.

+2

note La solution de Jon ne fonctionne que sur une seule machine - déplacer l'application et la configuration à une autre casse le cryptage –