Je viens de passer plusieurs heures à essayer de faire correspondre une fonction de hachage .NET à la fonction Crypt de PHP. Ce n'est pas drôle.
Il y a plusieurs défis à relever ici, puisque l'implémentation PHP de Crypt renvoie une chaîne encodée en base64, et ne fait pas de multiples itérations de hachage (par exemple, 5000 est la valeur par défaut de Crypt). Je n'ai pas été capable d'obtenir des résultats similaires avec .NET en utilisant plusieurs bibliothèques, jusqu'à ce que je trouve CryptSharp. Il accepte un sel similaire à la fonction de PHP (ou du C original) (par ex. "$6$round=5000$mysalt"
). Notez qu'il n'y a pas de queue de $, et que si vous ne fournissez pas de sel, il en générera automatiquement un au hasard.
Vous pouvez trouver CryptSharp ici : http://www.zer7.com/software.php?page=cryptsharp
Une bonne lecture de fond : - http://www.akkadia.org/drepper/SHA-crypt.txt