Question

La question est assez explicite. J'ai cherché sur Google de nombreux sites, de nombreuses méthodes, essayé de nombreux encodages, mais je n'arrive pas à les faire correspondre.

J'essaie de créer la chaîne " asdasd " rencontre. ( http://www.fileformat.info/tool/hash.htm?text= asdasd )

Était-ce utile?

La solution

Essayez ceci

using System.Security.Cryptography

public static string HashPassword(string unhashedPassword)
{
    return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(unhashedPassword))).Replace("-", String.Empty).ToUpper();
}

Autres conseils

BitConverter fonctionne très bien ...

var testVal = "asdasd";
var enc = new ASCIIEncoding();
var bytes = enc.GetBytes( testVal );

var sha = new SHA512Managed();
var result = sha.ComputeHash( bytes );

var resStr = BitConverter.ToString( result );
var nodash = resStr.Replace( "-", "" );

nodash.Dump();

(Correction du hachage 512 bits, désolé:)

Je viens de passer plusieurs heures à essayer d’obtenir une fonction de hachage .NET identique à la fonction Crypt de PHP. Pas drôle.

Les défis sont multiples, car l’implémentation PHP de Crypt renvoie une chaîne encodée en base64 et ne fait pas plusieurs itérations de hachage (par exemple, 5000 est la valeur par défaut pour Crypt.) Je n’ai pas pu obtenir de sorties similaires à partir de .NET en utilisant .NET plusieurs bibliothèques, jusqu'à ce que j'ai trouvé CryptSharp. Il accepte un sel similaire à la fonction PHP (ou à la fonction C d'origine) (par exemple, "6 $ round = 5000 $ mysalt" ). Notez qu'il n'y a pas de suivi $ 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

Bonne lecture de fond: - http://www.akkadia.org/drepper/SHA-crypt.txt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top