Domanda

La domanda è praticamente autoesplicativa. Ho cercato su Google molti siti, molti metodi, ho provato molte codifiche, ma non riesco a farle corrispondere.

Sto provando a creare la stringa " asdasd " incontro. ( http://www.fileformat.info/tool/hash.htm?text= asdasd )

È stato utile?

Soluzione

Prova questo

using System.Security.Cryptography

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

Altri suggerimenti

BitConverter funziona bene ...

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();

(risolto per hash a 512 bit, scusa :)

Ho appena trascorso diverse ore cercando di ottenere una funzione hash .NET per abbinare la funzione Crypt di PHP. Non è divertente.

Ci sono molte sfide qui, poiché l'implementazione PHP di Crypt restituisce una stringa codificata in base64 e non esegue più iterazioni di hashing (ad esempio 5000 è predefinito per Crypt.) Non sono stato in grado di ottenere output simili da .NET usando diverse librerie, fino a quando non ho trovato CryptSharp. Accetta un sale simile alla funzione di PHP (o alla C originale) (ad es. " $ 6 $ round = 5000 $ mysalt " ). Nota che non ci sono $ finali e che se non fornisci un sale ne genererà uno casuale.

Puoi trovare CryptSharp qui: http://www.zer7.com/software.php?page=cryptsharp

Buona lettura di base: - http://www.akkadia.org/drepper/SHA-crypt.txt

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top