CoreCLR中的哈希算法

时间:2015-10-20 19:28:28

标签: asp.net-core coreclr

我正在尝试在我的coreclr项目中使用此class,但我似乎找不到SHA256Managed的正确包。我尝试过使用System.Security.Cryptography.Algorithms“:”4.0.0-beta-23409“但它不包含SHA2565Managed的实现。在coreclr中计算哈希值还有其他选择吗?

1 个答案:

答案 0 :(得分:38)

您可以使用命名空间SHA256.Create()

中的System.Security.Cryptography

(大会: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));
}