У меня есть этот класс POCO:C#, Чудной, ПОКО и шифровать/расшифровывать
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;
}
Как я могу сделать для шифрования/дешифрования Password
поле, когда я прочитал данные из моей базы данных, и когда я получить доступ к своему объекту POCO от C#?
Я пытался использовать sometingh так:
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;
}
Но когда объекты заполняются данными из моей базы данных, все в порядке, то Password
поле правильно расшифровывает, но когда я получить доступ к объекту из C#, чтобы показать в текстовом поле, свойство get
снова меняет мои данные:/
Если у вас есть функция, которая расшифровывает пароль, вы делаете это неправильно. [Требуемое чтение] (http://stackoverflow.com/q/1054022/335858). – dasblinkenlight
** Не шифруйте пароли **, когда злоумышленник получает БД, он также получит ключ шифрования. Итерацию над HMAC со случайной солью в течение приблизительно 100 мс и сохранение соли с хешем. Используйте такие функции, как 'password_hash' /' password_verify', 'PBKDF2' (aka' Rfc2898DeriveBytes'), 'Bcrypt' и аналогичные функции. Дело в том, чтобы заставить злоумышленника потратить много времени на поиск паролей грубой силой. – zaph
Спасибо за советы :) –