Comment? Chiffrer et Déchiffrer l'appartenance d'utilisateur mots de passe dans ASP.NET
Nous sommes la création d'un nouveau site à l'aide ASP.NET fournisseur d'appartenances pour l'enregistrement de l'utilisateur et connectez-vous. Notre ancien système crypté de l'utilisateur mots de passe afin que nous puissions les récupérer si nous en avions besoin.
Je vais avoir beaucoup de mal à déterminer si il est possible d'utiliser ASP.NET fonctions d'appartenance simplement crypter le mot de passe lorsque l'utilisateur s'inscrit et puis décrypter afin que je puisse voir.
De la Documentation pour ce qui est voisin le non-existant.
Je sais comment configurer Web.config pour stocker les mots de passe cryptés ala
passwordFormat="Crypté" dans le fournisseur et l'attribution d'une validationKey dans le machineKey, cependant, il semble que le mot de passe est toujours hachées (bien que peut-être il est juste bien crypté). De toute façon, je ne attirent l'attention comment le mot de passe peut être récupéré (par nous) si nécessaire.
Merci!
OriginalL'auteur smdrager | 2010-06-10
Vous devez vous connecter pour publier un commentaire.
Stockage des mots de passe dans recouvrable format est une très mauvaise idée. Si vous pouvez récupérer n'importe quelle personne qui s'introduit dans votre serveur.
Il est préférable d'utiliser un standard de hachage+sel approche et d'avoir un mécanisme de réinitialisation de mot de passe pour gérer le cas où les utilisateurs oublient leur mot de passe.
ne pas le ASP.NET fournisseur d'appartenances support des mots de passe cryptés par défaut? Cela signifie que le mot de passe est transmis en hachés texte et stockées dans la base de données dans haché format. avez-vous besoin de plus que cela?
Juste pour clarifier, ASP.NET l'adhésion soutient claire, haché, et des formats cryptés la sortie de la boîte. Haché est la valeur par défaut est d'une seule façon (le meilleur pour la plupart des situations). Chiffré permet le décryptage du mot de passe.
OriginalL'auteur frankodwyer
Vous devez utiliser passwordFormat="Crypté" plutôt que passwordFormat="Haché". Ensuite, vous pouvez utiliser le DecryptPassword méthode de la MembershipProvider pour déchiffrer le mot de passe si nécessaire.
OriginalL'auteur John Bledsoe
lien DecryptPassword MSDN
OriginalL'auteur The Modulator
Je suppose que vous êtes à l'aide de la SQLMembershipProvider que MME de fournitures. Si oui, alors pourquoi ne pas utiliser le haut-question et réponse de la fonctionnalité pour permettre à l'utilisateur de réinitialiser leur mot de passe. Sinon (ou en plus) de réinitialiser leur mot de passe pour eux et e-mail le nouveau. De cette façon, votre application ne peut pas exposer un mot de passe des utilisateurs à quelqu'un accidentellement.
Si vous avez vraiment besoin pour déchiffrer leurs mots de passe puis le passwordFormat doit être mis à "Crypté". Voir DecryptPassword pour plus d'informations sur le décryptage du mot de passe. Pour plus de détails sur la façon de configurer pour le décryptage voir le PasswordFormat, note qu'il est dit que vous devez spécifier l'attribut decryptionKey de la machineKey élément.
Essayez d'utiliser le Système.Web.De sécurité.L'adhésion.Par défaut.DecryptPassword. DecryptPassword fait partie de la classe MembershipProvider signature de sorte qu'il a d'être là. Notez que Système.Web.De sécurité.L'adhésion est une classe statique qui n'expose pas les mêmes méthodes que la mise en œuvre de classes.
OriginalL'auteur Ken Henderson