Перехэшируйте пароль из базы данных EntityFramework.C#

Место общения программистов C#
Ответить
Anonymous
 Перехэшируйте пароль из базы данных EntityFramework.

Сообщение Anonymous »

Я узнал, что использую HashAlgorithmName.SHA1 для шифрования своих паролей, и хочу использовать HashAlgorithmName.SHA256.
Как мне повторно хешировать и хранить пароли из 4 таблиц в моей базе данных, используя .NET, EF? Я привык писать сценарии при миграции, но теперь мне приходится использовать код шифрования C#, а не только SQL.

Резюме

  • Код: Выделить всё

    new Rfc2898DeriveBytes(passBytes, saltBytes, 32768)
    показывает предупреждение, поскольку по умолчанию используется слабый SHA-1.
  • Я обновляю алгоритм до SHA-256:
SymmetricEncryption.cs

Код: Выделить всё

public string Encrypt(string input) {
...
new Rfc2898DeriveBytes(passBytes, saltBytes, 32768, HashAlgorithmName.SHA256),
...
}
  • В качестве решения я создал пустую миграцию:

Код: Выделить всё

public partial class Test : Migration
{
/// 
protected override void Up(MigrationBuilder migrationBuilder)
{
var myEncryptor = new SymmetricEncryption();

// Script or Context get all hashed passwords from 4 tables

// myEncryptor.Decrypt(option: SHA-1) - decrypt old hashed password made with SHA-1
// myEncryptor.Encrypt(option: SHA-256) - encrypt with new SHA-256

// Script or Context to store back
}

/// 
protected override void Down(MigrationBuilder migrationBuilder)
{

}
}
  • Проблемы с тестом класса:

    Мне нужны хешированные пароли базы данных , но в этом случае я не могу использовать сценарии с кодом SQL для обработки данных. Кроме того, мне кажется, что создание контекста базы данных в классе Test может быть ошибкой.
  • если класс SymmetricEncryption меняется со временем. Сохранится ли это решение во времени?
[*]Является ли это жизнеспособным решением? Вы бы реализовали это лучше?



Подробнее здесь: https://stackoverflow.com/questions/791 ... yframework
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»