c# - 如何使用 keyvault 证书获取可重复的 HMAC 哈希
问题描述
我们需要HMACSHA256Hash
在 .NET 中获取字符串。
我需要为给定的哈希输入获得一个可重复的(直到它旋转)哈希值。我想使用可自动旋转的密钥库证书作为用于生成 HMAC 的密钥。一旦证书轮换,散列函数返回不同的值是可以的。
构造HMACSHA256Hash
函数以 abyte[]
作为键。我有X509Certificate2
从 keyvault 请求返回的对象。我曾尝试使用该X509Certificate2.Export()
方法将byte[]
用作键,但是Export()
在.NET 中对同一个对象调用两次会返回不同的 byte[]。
在这种情况下,我有什么选择可以byte[]
从给定X509Certificate2
的情况下获得确定性?
解决方案
但是,在同一个对象上调用 Export() 两次会在 .NET 中按设计返回不同的 byte[]。
这取决于您导出的格式。X509ContentType.Cert 将为给定的输入生成一个固定的答案,这只是证书数据(没有私钥信息)。相同的数据可用于该X509Certificate2.RawData
物业。
推荐阅读
- python - ELMo 嵌入层与 Keras
- angular - 有没有办法使用 Angular 2 在一个 HTTP 请求中发送多个标头?
- javascript - window.location 然后 window.alert (立即关闭)(以避免在白屏时发出警报)
- php - SOAP 请求错误:SOAP 错误:服务器无法处理请求。---> MaskRequestInfo args(0) 不是字符串类型
- google-apps-script - 我的域中 Z 列中的用户时间戳
- entity-framework - 为什么当我尝试获取实体的属性时会得到一个 sql 查询?
- java - 无法使用 Jersey Maven 休息服务发送 Json 响应
- c++ - 由于 SDL_main 宏,Visual Studio 2017 无法使用 main 作为入口点
- autoit - Autoit 无法识别 _StringBetween 函数
- ios - react-native 无法处理 try catch 块中的错误