Comment chiffrer les paramètres de l'utilisateur (comme les mots de passe) dans mon application?
Je veux offrir à l'utilisateur la possibilité d'enregistrer des données à caractère personnel codées. Cela pourrait être banal, ou peut-être déjà demandé, mais je ne suis pas en mesure de trouver un exemple d'un outil facile à utiliser pour crypter/décrypter un mot de passe.
Je n'ai vraiment pas besoin d'un super-magie-incassable mot de passe. J'ai juste besoin de mot de passe pour être comme difficile à briser.
J'ai vu quelques msdn et AINSI de questions mais je n'ai pas trouvé quelque chose à utiliser.
- Question connexe: Comment crypter un mot de passe pour l'enregistrer par la suite dans une base de données ou un fichier texte?. Et beaucoup, beaucoup plus: les Questions contenant 'c# crypter le mot de passe" .
- Notez que quoi que vous fassiez, vous ne pas déchiffrer les mots de passe. Plutôt, vous vous assurez que les deux hachages de match.
- est-il possible d'envoyer le mot de passe haché dans la chaîne de connexion sql?
- Ne sais rien à propos de SQL, mais je suis sûre qu'il doit être. Un mot de passe haché serait exactement comme n'importe quel autre texte ou une valeur numérique.
- Vous ne voulez pas utiliser les mots de passe des utilisateurs dans les chaînes de connexion. En supposant que vous êtes sur SQL Server, faire qui empêche les connexions de mise en commun et donc diminue les performances. Au lieu de cela, avoir un compte qui se connecte à SQL Server à l'aide de l'authentification Windows.
Vous devez vous connecter pour publier un commentaire.
David, J'ai pensé votre réponse était chouette, mais je croyais que ce serait niftier que les méthodes d'extension. Permettant cette syntaxe:
Voici le code mis à jour:
La suite est à peu près aussi simple que cela, en supposant que vous vraiment voulez juste être en mesure de crypter/décrypter une chaîne et de les stocker sur le disque. Remarque ce n'est pas utiliser un mot de passe, il utilise le contexte de sécurité de l'utilisateur connecté Système.De sécurité.La cryptographie.DataProtectionScope.CurrentUser pour sécuriser les données.
Alors de crypter une chaîne de caractères:
Et à la suite de décrypter:
A SecureString object should never be constructed from a String, because the sensitive data is already subject to the memory persistence consequences of the immutable String class. The best way to construct a SecureString object is from a character-at-a-time unmanaged source, such as the Console.ReadKey method.
Pour mon but, j'ai modifier Jesse C. Trancheuse solution pour ne pas utiliser
SecureString
que ce n'est pas important pour moi, pour protéger la mémoire. J'ai juste besoin de sérialiser des chaînes cryptées. Pour faire de ce projet a nécessité de faire référence àSystem.Security
(non seulement à l'aide de l'énoncé).Et de l'utiliser: