从证书中获取 Sha256 public 密钥
Get Sha256 public key from certificate
目前,我正在开发客户端服务器应用程序(聊天),正在为服务器和客户端实现安全性,很少有客户端是用 java SMACK 库编写的,他们正在为 JAVA 使用 TLS Pining它需要 sha2 哈希 [https://github.com/Flowdalic/java-pinning][1]
服务器是使用 C# 实现的,我在服务器端有证书如何从证书中获取具有以下格式的 sha2 public 密钥,下面是我的代码。
cer =new X509Certificate2(ConfigurationManager.AppSettings["CertificateName"],"123456");
string hellow= cer.GetCertHashString(); //it will return sha1 hash
我需要的是以下格式和证书中的 sha2-256 密钥
SHA2-256 密钥
83:F9:17:1E:06:A3:13:11:88:89:F7:D7:93:02:BD:1B:7A:20:42:EE:0C:FD:02:9A:BF:8D:D0:6F:FA:6C:D9:D3
我的问题已经找到答案了,分享一下吧。
如果你想获得证书的 SHA256 指纹,你必须做一些手工工作。内置指纹 属性 仅为 SHA1。
你必须使用 SHA256 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 BitConverter.ToString(hashBytes).Replace("-", ":");
}
}
}
目前,我正在开发客户端服务器应用程序(聊天),正在为服务器和客户端实现安全性,很少有客户端是用 java SMACK 库编写的,他们正在为 JAVA 使用 TLS Pining它需要 sha2 哈希 [https://github.com/Flowdalic/java-pinning][1]
服务器是使用 C# 实现的,我在服务器端有证书如何从证书中获取具有以下格式的 sha2 public 密钥,下面是我的代码。
cer =new X509Certificate2(ConfigurationManager.AppSettings["CertificateName"],"123456");
string hellow= cer.GetCertHashString(); //it will return sha1 hash
我需要的是以下格式和证书中的 sha2-256 密钥 SHA2-256 密钥
83:F9:17:1E:06:A3:13:11:88:89:F7:D7:93:02:BD:1B:7A:20:42:EE:0C:FD:02:9A:BF:8D:D0:6F:FA:6C:D9:D3
我的问题已经找到答案了,分享一下吧。
如果你想获得证书的 SHA256 指纹,你必须做一些手工工作。内置指纹 属性 仅为 SHA1。
你必须使用 SHA256 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 BitConverter.ToString(hashBytes).Replace("-", ":");
}
}
}