HashAlgorithms в CoreCLR

Я пытаюсь использовать этот класс в моем проекте coreclr, но я не могу найти правильный пакет для SHA256Managed. Я попытался использовать System.Security.Cryptography.Algorithms ":" 4.0.0-beta-23409 ", но он не содержит реализацию SHA2565Managed. Есть ли другая альтернатива для вычисления хэш-значений в coreclr?

Ответы

Ответ 1

Вы можете использовать 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));
}