每当我使用SHA256.Create()
方法时,它总是返回一个空值。这是我加密密码的方法......
private string EncryptPassword(string password)
{
SHA256 sha = SHA256.Create(password);
return BitConverter.ToString(sha.Hash);
}
调试器显示变量sha
为空。我甚至尝试在控制器中使用自己的方法,但我仍然得到System.NullReferenceException
public String Index()
{
return BitConverter.ToString(SHA256.Create("Hello World").Hash);
}
我完全迷失了。有什么东西我显然做错了吗?
答案 0 :(得分:6)
是的,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);
}