CoreCLR 中的哈希算法

HashAlgorithms in CoreCLR

我正在尝试在我的 coreclr 项目中使用这个 class,但我似乎无法为 SHA256Managed 找到正确的包。我试过使用 System.Security.Cryptography.Algorithms": "4.0.0-beta-23409" 但它不包含 SHA2565Managed 的​​实现。在 coreclr 中是否有其他计算哈希值的替代方法?

您可以使用来自命名空间 System.Security.Cryptography

SHA256.Create()

(汇编:System.Security.Cryptography.Algorithms

using (var algorithm = SHA256.Create())
{
    // Create the at_hash using the access token returned by CreateAccessTokenAsync.
    var hash = algorithm.ComputeHash(Encoding.ASCII.GetBytes(response.AccessToken));

    // Note: only the left-most half of the hash of the octets is used.
    // See http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken
    identity.AddClaim(JwtRegisteredClaimNames.AtHash, Base64UrlEncoder.Encode(hash, 0, hash.Length / 2));
}