SHA256.Create () întoarce întotdeauna nul

Ori de câte ori folosesc metoda SHA256.Create() , întoarce întotdeauna o valoare nulă. Iată metoda de criptare a unei parole ...

private string EncryptPassword(string password)
{
    SHA256 sha = SHA256.Create(password);
    return BitConverter.ToString(sha.Hash);
}

The debugger shows that the variable sha is null. I have even tried putting it in its own method in a controller but I still get a System.NullReferenceException

public String Index()
{
    return BitConverter.ToString(SHA256.Create("Hello World").Hash);
}

Sunt complet pierdut. Există ceva în mod evident greșit?

0

1 răspunsuri

Da, Create() nu este destinat mesajului, specifică implementarea SHA256.

Bănuiesc că doriți să utilizați în schimb clasa de implementare SHA256Managed .

http://msdn.microsoft.com/en-us/library/system. security.cryptography.sha256managed.aspx

Exemplu:

using (var sha256 = new SHA256Managed())
{
    byte[] raw = Encoding.Default.GetBytes(password);
    return sha256.ComputeHash(raw);
}
0
adăugat
Se pare că ieșirea ComputeHash() delimitează hash-ul cu - la fiecare două caractere. Există vreo modalitate de a evita acest lucru?
adăugat autor Stefan Bossbaly, sursa
Convertesc octetul [] la un String folosind BitConverter.ToString() și apoi îl stochez în baza de date ca un nchar (64)
adăugat autor Stefan Bossbaly, sursa
Mulțumesc foarte mult pentru ajutorul tău. Greșeală greșită pentru că nu am citit cu atenție documentația
adăugat autor Stefan Bossbaly, sursa
@Sbossb Cum afișați valoarea hash'd?
adăugat autor jglouie, sursa
@Sbossb Asta e BitConverter adăugând -. Puteti face doar BitConverter.ToString (xxx) .Replace ("-", string.Empty); ... sau convertiți la Base64: Convert.ToBase64String (xxx)
adăugat autor jglouie, sursa
pariezi. pentru ceea ce merită, am găsit-o să fie în jos și a terminat folosind o versiune extrem de optimizată a SHA256. nu este sigur dacă va fi o piedică pentru cererea dumneavoastră.
adăugat autor jglouie, sursa
+1, urmată de un apel către ComputeHash ( msdn.microsoft.com/en- us/library/s02tk69a.aspx ) pentru a calcula valoarea hash reală.
adăugat autor Chris Shain, sursa