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

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

string password_hash ( string $password )

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

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

Я пробовал:

  • Bcrypt.NET от Nuget
  • Это
  • Я думал о том, чтобы попробовать Это, пока не понял, что на странице Nuget написано "Не в списке".

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

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


person Luke    schedule 17.09.2014    source источник
comment
Я изменил свой вопрос, описав проблему и запросив решение. Спасибо   -  person Luke    schedule 17.09.2014
comment
Спасибо, что отозвали закрытое голосование... о, подождите!   -  person Luke    schedule 18.09.2014


Ответы (1)


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

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

Вот пакет Nuget и Документы

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

person Luke    schedule 17.09.2014
comment
Я надеюсь, что это поможет некоторым коллегам, конвертирующим PHP в С# :) - person Luke; 17.09.2014