Возвращаемое значение C # SHA256Managed - NULL - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть класс, где он отвечает за генерацию хеша в соответствии с тем, что я ему отправляю.Однако возвращение метода 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.

1 Ответ

0 голосов
/ 31 декабря 2018

Предпочтительный способ создания SHA256 (используйте SHA256 для выбора реализации):

SHA256 sha256 = SHA256.Create();

Параметр Create - это имя алгоритма - вам не нужно передавать его, если вы не используете базовый класс длявыбрать, какой использовать.Чтобы исправить ваш код, удалите или используйте правильный параметр:

SHA256 sha256 = SHA256Managed.Create(); 

или

SHA256 sha256 = SHA256Managed.Create("SHA256");

Обратите внимание, что оба вызова на самом деле реализованы базовым классом SHA256, и сначала просто выберите реализацию "default",

См. SHA256.Создать для справки.

...