我有一个类,它负责根据发送给它的内容生成哈希。但是,SHA256Managed.Create(text)
方法的返回总是返回null
。
以下是我的代码:
using System.Security.Cryptography;
using System.Text;
namespace Autenticacao_no_ASP_.NET_MVC.Utils
{
public class Hash
{
public static string GerarHash(string texto)
{
SHA256 sha256 = SHA256Managed.Create(texto);
byte[] bytes = Encoding.UTF8.GetBytes(texto);
byte[] hash = sha256.ComputeHash(bytes);
StringBuilder result = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
result.Append(hash[i].ToString("X"));
}
return result.ToString();
}
}
}
sha256,正在返回null。
最佳答案
创建SHA256的首选方法(使用SHA256选择实现):
SHA256 sha256 = SHA256.Create();
Create
的参数是算法的名称-除非您使用基类来选择要使用哪一个,否则您实际上不需要传递一个。要解决您的代码,请删除或使用正确的参数:SHA256 sha256 = SHA256Managed.Create();
要么
SHA256 sha256 = SHA256Managed.Create("SHA256");
请注意,这两个调用实际上都是由
SHA256
基类实现的,首先仅选择“默认”实现。请参见SHA256.Create以供参考。
关于c# - C#返回值SHA256Managed为NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53990803/