Как получить отпечаток сертификата SHA256?

Как получить отпечаток пальца SHA256 сертификата ?. Сертификаты SHA 256 имеют два отпечатка, я могу получить основной отпечаток, но не SHA256.

2 ответов


Если вы хотите получить отпечаток SHA256 сертификата, вам нужно выполнить некоторую ручную работу. Встроенный отпечаток собственность-это только в SHA1.

Yo должны использовать SHA256 и класс и вычислить хэш над содержимым сертификата:

using System;
using System.Linq;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

namespace MyNamespace {
    class MyClass {
        public static String GetSha2Thumbprint(X509Certificate2 cert) {
            Byte[] hashBytes;
            using (var hasher = new SHA256Managed()) {
                hashBytes = hasher.ComputeHash(cert.RawData);
            }
            return hashBytes.Aggregate(String.Empty, (str, hashByte) => str + hashByte.ToString("x2"));
        }
    }
}

и преобразовать этот код в метод расширения, если это необходимо.


public static String GetSha2Thumbprint(X509Certificate2 cert)
        {
            Byte[] hashBytes;
            using (var hasher = new SHA256Managed())
            {
                hashBytes = hasher.ComputeHash(cert.RawData);
            }
            string result = BitConverter.ToString(hashBytes)
                // this will remove all the dashes in between each two haracters
            .Replace("-", string.Empty).ToLower();         
            return result;
        }
After getting the Hashbytes , you have to do the bit convertion.

эти сообщения также помогли мне . хэширование текста с помощью SHA-256 в Windows Forms