SHA256.Create() 总是返回 null

本文关键字:返回 null Create SHA256 | 更新日期: 2023-09-27 18:36:12

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

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

调试器显示变量 sha 为 null。我什至尝试过将其放在控制器中自己的方法中,但我仍然得到System.NullReferenceException

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

我完全迷失了。我明显做错了什么吗?

SHA256.Create() 总是返回 null

是的,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);
}