J'ai cette classe POCO:C#, Dapper, POCO et Crypter/Décrypter
class Users
{
public string User { get; set; }
public string Password { get; set; }
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
Comment puis-je faire pour champ Crypter/Décrypter Password
quand je lis les données de ma base de données et quand j'accéder à mon objet POCO de C#?
Je suis tenté d'utiliser sometingh comme ceci:
class Users
{
private string _password;
public string User { get; set; }
public string Password
{
get
{
return Encriptar(_password);
}
set
{
_password = Desencriptar(value);
}
}
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
Mais lorsque les objets sont remplis avec les données de ma base de données, tout est ok, le champ Password
déchiffre correctement, mais quand j'accéder à un objet C# à afficher dans le champ de texte, la propriété get
enrypte à nouveau mes données:/
Si vous avez une fonction qui décrypte un mot de passe, vous le faites mal. [Lecture obligatoire] (http://stackoverflow.com/q/1054022/335858). – dasblinkenlight
** Ne cryptez pas les mots de passe **, lorsque l'attaquant obtient la base de données, il recevra également la clé de cryptage. Iterate sur un HMAC avec un sel aléatoire pendant environ une durée de 100ms et enregistrer le sel avec le hachage. Utilisez des fonctions telles que 'password_hash' /' password_verify', 'PBKDF2' (aka' Rfc2898DeriveBytes'), 'Bcrypt' et des fonctions similaires. Le but est que l'attaquant passe beaucoup de temps à trouver des mots de passe par force brute. – zaph
Merci pour les conseils :) –