Реализация Blowfish для C # .NET — переход с PHP на C #

Я перевожу свое приложение с PHP на C # MVC. Я использовал следующий метод для шифрования паролей:

string password_hash ( string $password )

По умолчанию password_hash () использует алгоритм хеширования BLOWFISH и создает хэши с префиксом $2y$,

Я посмотрел и попробовал, довольно много предполагаемый реализации алгоритма, но ни одна из них, похоже, не работает с моими существующими хешами, и я не уверен, могу ли я доверять любому из них.

Я пробовал:

  • Bcrypt.NET от Nuget
  • это
  • Я думал дать это идти, пока я не понял, что на странице Nuget написано «Unlisted».

Мне это нужно, чтобы я мог проверить существующие хеши в моей базе данных и восстановить их, используя стандартный метод C # .MVC Identity Framework, когда пользователь снова входит в систему.

Как я могу проверить пароли, созданные с помощью password_hash() в PHP с использованием C #?

1

Решение

Я только что наткнулся на пакет под названием CryptSharp который, кажется, проверяет пароли аналогично тому, как password_verify() в PHP будет. Я проверил это на нескольких существующих хешах паролей, созданных PHP …

using CryptSharp;
bool matches = Crypter.CheckPassword("password", "password hash");

Вот Nuget Package а также Документы

Я использовал версию 2.0.0 …

0

Другие решения

Других решений пока нет …