首页 > 解决方案 > 如何使用 keyvault 证书获取可重复的 HMAC 哈希

问题描述

我们需要HMACSHA256Hash在 .NET 中获取字符串。

我需要为给定的哈希输入获得一个可重复的(直到它旋转)哈希值。我想使用可自动旋转的密钥库证书作为用于生成 HMAC 的密钥。一旦证书轮换,散列函数返回不同的值是可以的。

构造HMACSHA256Hash函数以 abyte[]作为键。我有X509Certificate2从 keyvault 请求返回的对象。我曾尝试使用该X509Certificate2.Export()方法将byte[]用作键,但是Export()在.NET 中对同一个对象调用两次会返回不同的 byte[]。

在这种情况下,我有什么选择可以byte[]从给定X509Certificate2的情况下获得确定性?

标签: c#asp.net-corehashazure-keyvaultx509certificate2

解决方案


但是,在同一个对象上调用 Export() 两次会在 .NET 中按设计返回不同的 byte[]。

这取决于您导出的格式。X509ContentType.Cert 将为给定的输入生成一个固定的答案,这只是证书数据(没有私钥信息)。相同的数据可用于该X509Certificate2.RawData物业。


推荐阅读