C#返回值SHA256Managed为NULL

时间:2018-12-31 19:24:56

标签: c# asp.net asp.net-mvc sha256

我有一个类,负责根据发送给它的内容生成哈希。但是,返回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 ,它返回空值。

1 个答案:

答案 0 :(得分:3)

创建SHA256的首选方法(使用SHA256选择实现)

  SHA256 sha256 = SHA256.Create();
 
Create

参数是算法的名称-除非您使用基类来选择要使用的那个,否则您实际上不需要传递一个。要解决您的代码,请删除或使用正确的参数:

  SHA256 sha256 = SHA256Managed.Create();
 

  SHA256 sha256 = SHA256Managed.Create(“ SHA256”);
 

请注意,这两个调用实际上都是由 SHA256 基类实现的,首先仅选择“默认”实现。

请参见 SHA256.Create 供参考。