Crypter le mot de passe dans L'application.config
Je veux crypter le mot de passe dans la chaîne de connexion. Lorsque je fais une connexion à DB, la chaîne de connexion est ouvertement stockée dans App.config et moi devons trouver un moyen de ne garder que le mot de passe crypté.
3 réponses
Disons que c'est votre chaîne de connexion:
<connectionStrings>
<add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/>
</connectionStrings>
, Alors vous pouvez faire quelque chose comme ceci:
string myCs = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString;
System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder(myCs);
csb.Password = EncDecHelper.Decrypt(csb.Password);
myCs = csb.ToString();
Vous pouvez écrire EncDecHelper.Decrypt
en utilisant des exemples d'ici: chiffrer et déchiffrer une chaîne
Utilisez le connectionStrings
Section de configuration et crypter toute la section-au lieu de simplement le mot de passe.
Ceci est plus sûr car votre configuration d'application n'aura plus non plus les noms de serveur et d'utilisateur en texte brut.
Il existe des documents pratiques pour chiffrer les sections de configuration sur MSDN pour RSA ouDPAPI .
Peut-être décrypter la chaîne de connexion de votre configuration avant le chargement de l'application.