Я потратил несколько часов, пытаясь получить хеш-функцию .NET, соответствующую PHP-функции Crypt. Не смешно.
Здесь есть несколько проблем, так как реализация PHP Crypt возвращает строку в кодировке base64 и не выполняет многократные итерации (например, 5000 для Crypt по умолчанию). Мне не удалось получить аналогичные выходные данные из .NET, используя несколько библиотек, пока я не нашел CryptSharp. Он принимает соль, аналогичную функции PHP (или оригинальной C) (например, "$6$round=5000$mysalt"
). Обратите внимание, что нет конечного $, и что если вы не предоставите соль, она автоматически сгенерирует случайную.
Вы можете найти CryptSharp здесь:
http://www.zer7.com/software.php?page=cryptsharp
Хорошее фоновое чтение:
- http://www.akkadia.org/drepper/SHA-crypt.txt