SHA256.Create()始终返回null

Ste*_*aly 4 .net c# sha asp.net-mvc-3

每当我使用该SHA256.Create()方法时,它总是返回一个空值.这是我加密密码的方法......

private string EncryptPassword(string password)
{
    SHA256 sha = SHA256.Create(password);
    return BitConverter.ToString(sha.Hash);
}
Run Code Online (Sandbox Code Playgroud)

调试器显示该变量sha为null.我甚至尝试将它放在一个控制器中的自己的方法,但我仍然得到一个System.NullReferenceException

public String Index()
{
    return BitConverter.ToString(SHA256.Create("Hello World").Hash);
}
Run Code Online (Sandbox Code Playgroud)

我完全迷失了.有什么东西我显然做错了吗?

jgl*_*uie 7

是的,Create()不是为了消息,它指定了SHA256实现.

我怀疑你想要使用实现类SHA256Managed.

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

例:

using (var sha256 = new SHA256Managed())
{
    byte[] raw = Encoding.Default.GetBytes(password);
    return sha256.ComputeHash(raw);
}
Run Code Online (Sandbox Code Playgroud)