2015-10-20 8 views
15

Próbuję użyć tego class w moim projekcie coreclr, ale nie mogę znaleźć właściwego pakietu dla SHA256Managed. Próbowałem używać System.Security.Cryptography.Algorithms ":" 4.0.0-beta-23409 ", ale nie zawiera ona implementacji SHA2565Managed.Czy jest jakaś inna alternatywa dla obliczania wartości mieszania w coreclr?HashAlgorithms w CoreCLR

Odpowiedz

28

You można użyć SHA256.Create() (od 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)); 
} 
+0

to rzeczywiście w 'System.Security.Cryptography', nie' System.Security.Cryptography.Algorithms' – Pavel

+0

@Pavel nazwa pakietu jest [ 'System.Security.Cryptography .Algorithms'] (https://www.nuget.org/packages/System.Security.Cryptography.Algorithms/) i przestrzeń nazw 'System.Security.Cryptography'. – Pinpoint

+0

O, widzę. Nie zdawałem sobie sprawy, że to było pakiet NuGet. – Pavel