using System; using System.Collections; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Text; namespace Model { /// /// Permet de gérer le hachage des mots de passe à des buts de sécurité. /// public class Hash { /// /// Permet d'obtenir le hachage du mot de passe /// /// Le mot de passe dont on souhaite obtenir le hachage. /// Le mot de passe haché. public string CreateHashCode(string mdp) { string hashString = ""; byte[] hash; using (SHA512 shaM = new SHA512Managed()) { hash = shaM.ComputeHash(Encoding.UTF8.GetBytes(mdp)); } foreach (byte b in hash) { hashString = hashString + b; } return hashString; } /// /// Permet de vérifier si 2 mots de passe haché sont les mêmes. /// /// Le mot de passe qui est contenu dans la base de donnée. /// Le mot de passe dont on souhaite savoir si il est égale à celui de la base de donnée. /// Un boolean égale à True si les mots de passe sont égaux. public bool IsEqualHash(string mdpBdd, string mdpSent) { string hashedMdpSent = CreateHashCode(mdpSent); return hashedMdpSent.Equals(mdpBdd); } } }