Я перевожу свое приложение с PHP на C # MVC. Я использовал следующий метод для шифрования паролей:
string password_hash ( string $password )
По умолчанию password_hash () использует алгоритм хеширования BLOWFISH и создает хэши с префиксом $2y$
,
Я посмотрел и попробовал, довольно много предполагаемый реализации алгоритма, но ни одна из них, похоже, не работает с моими существующими хешами, и я не уверен, могу ли я доверять любому из них.
Я пробовал:
Мне это нужно, чтобы я мог проверить существующие хеши в моей базе данных и восстановить их, используя стандартный метод C # .MVC Identity Framework, когда пользователь снова входит в систему.
Как я могу проверить пароли, созданные с помощью password_hash()
в PHP с использованием C #?
Я только что наткнулся на пакет под названием CryptSharp
который, кажется, проверяет пароли аналогично тому, как password_verify()
в PHP будет. Я проверил это на нескольких существующих хешах паролей, созданных PHP …
using CryptSharp;
bool matches = Crypter.CheckPassword("password", "password hash");
Вот Nuget Package а также Документы
Я использовал версию 2.0.0 …
Других решений пока нет …