c# - 如何获得 SHA-256 证书指纹?

标签 c# x509certificate sha256

如何获取证书的 SHA-256 指纹?

SHA-256 证书有两个指纹,我可以检索到主指纹,但不能检索 SHA-256。

最佳答案

如果您想获取证书的 SHA-256 指纹,则必须进行一些手动操作。内置 Thumbprint属性是 SHA-1仅。

你必须使用 SHA-256 class并计算证书内容的哈希值:

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"));
        }
    }
}

如有必要,您将此代码转换为扩展方法。

关于c# - 如何获得 SHA-256 证书指纹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586588/

相关文章:

c# - 使用 FSharp.Data 将 Web 应用程序部署到 Azure 网站

c# - ResolveUrl 和 ResolveClientUrl 有什么区别?

python - 如何从Python中的x509证书中提取公钥?

java - 如何使用 SHA-256 对字符串进行哈希处理

c++ - 修改哈希函数

node.js - AWS4 S3 POST 签名计算失败示例

c# - WPF 浏览器控件在使用 ObjectForScripting window.external.invoke() 时抛出对象不支持属性或方法

c# - 将 byte[] 作为文件打开,而不是首先将其实际保存为文件

spring-security - 如何使用 Spring Security SAML 扩展对 SAML 请求/响应进行签名

c# - C#中如何判断哪个个人证书来自硬件设备?