S'il vous plaît ne marquez pas cela comme un duplicata, car j'ai déjà vérifié plusieurs messages, mais aucun d'entre eux n'a aidé à moi.
ASP.NET MVC - Comment faire un mot de passe de hachage P>
mots de passe de hachage et de sel en C # p>
Je construis un site Web qui possède une page de connexion et j'ai lu ce message P >
sur la façon de faire mon login sécurisé. P>
Je comprends maintenant que sur chaque inscription, je dois créer des CSprngs (générateur de numéros de pseudotage cryptographiquement) et ajoutez-le au mot de passe soumis par l'utilisateur, puis de hachage, ce mélange et stockez-le dans la base de données et stockez le sel pour chaque utilisateur, car il est aléatoire pour chaque utilisateur. Ma question est ce qui est le moyen le plus facile et le plus simple de le faire. P>
dans mon contrôleur, je prends le nom d'utilisateur et le mot de passe via cette méthode p> Mon modèle de connexion contient p> donc je reçois le nom d'utilisateur et le mot de passe comme (string a = data.Asername, ...) p> J'ai déjà ajouté ceci à mon projet mais je ne sais pas comment continuer ici p>
3 Réponses :
La réponse à chaque "Comment est-ce que je suis en sécurité des mots de passe" em> est la même chose: vous ne strong>. Vous êtes dans les affaires de faire des sites Web uniques, non pas dans l'entreprise de sécurité. Vous ne savez pas ce que vous faites, et vous ne reconnaîtrez pas si vous faites quelque chose de mal. Jusqu'à ce que votre base de données fuit d'une manière ou d'une autre, puis vous êtes trop tard pour faire quoi que ce soit, compromettez la sécurité de vos utilisateurs. P>
Vous utilisez bien la recherche, la bataille-trempe, entretenu em> code pour stocker les connexions utilisateur. Lorsque vous êtes sur ASP.NET MVC, vous utilisez Identité ASP.NET < / a>. Vous ne roulez pas le vôtre. Point final. p>
Vous pouvez faire de l'ajout de sel et de hacher le mot de passe en utilisant une méthode telle que celle-ci. Ici, nous envoyons une méthode une chaîne. C'est fondamentalement comment l'entité Framework Hash est un mot de passe lorsque vous créez un utilisateur à l'aide de la section Connexion.
public static string EncodePassword(string password) { byte[] salt; byte[] buffer2; if (password == null) { throw new ArgumentNullException("password"); } using (Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(password, 0x10, 0x3e8)) { salt = bytes.Salt; buffer2 = bytes.GetBytes(0x20); } byte[] dst = new byte[0x31]; Buffer.BlockCopy(salt, 0, dst, 1, 0x10); Buffer.BlockCopy(buffer2, 0, dst, 0x11, 0x20); return Convert.ToBase64String(dst); }//Entity Framework default way
Merci d'avoir répondu, mais je me demande pourquoi vous utilisez la mémoire tampon, y a-t-il un moyen de simplement obtenir le sel dans une chaîne et d'ajouter le mot de passe et le haché sera stocké dans DB comme une chaîne.
@riario L'intention utilise hachage salé lente i>, il est nécessaire d'utiliser un nombre raisonnable d'itérations pour ralentir la recherche de force brute. Vous pouvez également rechercher Internet pour PBKDF2, ARGON2 ou BRYPT Algorithm pour stocker les mots de passe (en effet RFC2898 définis PBKDF2 comme une norme)
@riario n'échappe pas aux données binaires brutes. Les hachages de mot de passe sont, par nature, des données binaires brutes, pas des chaînes. Vous devriez les traiter comme tels.
J'ai fait de cette façon, et ça marche bien.
J'ai ajouté une nouvelle classe p> } p> et dans mon contrôleur j'ai ajouté une instance de cette classe p> puis je passe des valeurs à p> Je supprime le "-" du mot de passe haché et ensuite je prends les 16 premiers caractères. P> Merci à @Luke Joshua Park, @ gusto2, @jamess et @Codecaster pour leur aide. P> P>
Quelle est votre version de Framework ?NET?
Je me sens un peu comme la réponse de Welldart sur le deuxième poste que vous connaissez pour couvrir tout cela, avec un exemple complet (et WinDart est très bon sur la sécurité; peut-être la seule chose clé qui change au fil du temps qu'il y a le choix de Crypto Algorithm) (note :
getBytes code> sur un
rngcryptoserviceProvider code> peut vous donner du sel aléatoire)
@ karthickj25 4.5
@Marcgravell, je vais vérifier à nouveau.