我有一个类,负责根据发送给它的内容生成哈希。但是,返回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 ,它返回空值。
答案 0 :(得分:3)
创建SHA256的首选方法(使用SHA256选择实现)
SHA256 sha256 = SHA256.Create();
Create
的参数是算法的名称-除非您使用基类来选择要使用的那个,否则您实际上不需要传递一个。要解决您的代码,请删除或使用正确的参数:
SHA256 sha256 = SHA256Managed.Create();
或
SHA256 sha256 = SHA256Managed.Create(“ SHA256”);
请注意,这两个调用实际上都是由 SHA256
基类实现的,首先仅选择“默认”实现。
请参见 SHA256.Create 供参考。