SecureString est ce que vous cherchez. N'utilisez jamais un simple objet chaîne car il n'est pas crypté et peut survivre à différentes collectes, ce qui signifie que votre mot de passe volera dans toute la mémoire pendant une longue période et que vous ne pourrez pas le contrôler à moins d'assigner dynamiquement GB Génération qui peut être assez diabolique. SecureString, à la place, est automatiquement supprimé lorsqu'il n'est plus utilisé.
D'autre part, lors du stockage d'un mot de passe dans le web.config toujours le crypter. Vous pouvez utiliser aspnet_regiis.exe pour cela. (Il fait partie des outils .NET Framework). Donc, en supposant que vous stockez le mot de passe dans un élément xml appelé "DBAccessPassword" La commande de cryptage ressemblerait à quelque chose comme ceci.
aspnet_regiis.exe -pe "DBAccessPassword" -app "/yourApp"
C'est une technique très utile qui pourrait vraiment fait la différence si, par exemple, votre application est vulnérable à un Path Traversal Vulnerability. Le cryptage d'un mot de passe est toujours une bonne idée car il ajoute une couche de sécurité supplémentaire à votre application.
Performances
aspnet_regiis utilise RSA par défaut. RSA c'est un algorithme asymétrique et à cause de cela, en fonction du temps que vous récupérez votre mot de passe, cela pourrait conduire à un problème de performances. Les algorithmes à clé symétrique sont généralement beaucoup moins computationnels que les algorithmes à clé asymétrique. En pratique, les algorithmes de clés asymétriques sont typiquement des centaines à des milliers de fois plus lents que les algorithmes à clé symétrique. En fonction du type de votre application, vous pouvez également envisager d'utiliser un autre algorithme.
Quel est le but de ce mot de passe, en avez-vous besoin en texte clair? –
Son un mot de passe de base de données – user137348
Comment interagissez-vous avec votre base de données? ADO.NET? LINQ? –