2016-06-01 3 views
0

RS512 C#을 사용하여 JWT를 사용하여 데이터를 암호화하고 해독하는 방법을 보여 주시겠습니까?C# 알고리즘 RS512로 JWT 암호화 및 암호 해독

나는

private_modulus=8978158791.......(number only) 
private_exponent=8487473636364..... (number only) 

내가 구글에서 검색했지만 결과가 명확하지 않다의 개인 키를 가지고 있고 그들은 내가 해달라고 또는 내가 위에서 생성하는 방법을 잘 모릅니다 개인 및 공개 키가 필요합니다.

Java로 작성되었으며 C#을 사용하려고합니다.

+0

왜 RS512가 아닌 PS512입니까? – CodesInChaos

답변

0

본인이 직접해서는 안됩니다. 이것은 너무 오류가 발생하기 쉽습니다. 당신은 그것은 생성/검증 JWT에 사용할 수있는 마이크로 소프트 자체, 예컨대 :

https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/

하여 준비가 만든 라이브러리를 사용할 수 있으며, 지금까지 내가 기억하는 다양한 알고리즘을 사용할 수 있습니다. 개인 키 만 JWE의 암호를 해독하는 데 필요한

https://github.com/jwt-dotnet/jwt

+0

정말 고마워. 나는 제공된 열쇠를 어떻게 사용할 수 있는지 알 수 없다. 너를 도울 수 있니 .. – Sml004

+0

나는 너가 어떻게하는지 100 % 확실하지 않다. 이것을 사용하는 방법에 대해 좀 더 살펴보아야합니다. 아마도 키에 결합하거나 나중에 라이브러리에서 사용하는 인증서를 만들어야 할 것입니다. 그래서 나는 당신이 선택한 도서관의 문서를 확인하는 것으로 시작할 것입니다. –

+0

Google에서 검색했습니다. 이 방법을 사용할 수 없습니다. – Sml004

0

: 당신이 MS보다 더 많은 것을 좋아하는 경우에

또 다른 옵션은 오픈 소스 라이브러리입니다. 암호화의 경우 공개 키를 사용해야합니다. 개인 RSA 키가있는 경우 모든 개인용 소수와 계수 (즉, d, p, q, dmp1, dmq1iqmp)를 제거하여 쉽게 공개 키로 변환 할 수 있습니다.

RS512는 암호화 알고리즘이 아닌 서명 알고리즘입니다. 가능한 알고리즘 목록을 찾으려면 RFC7518, section 4.1에 관해 읽어야합니다. RSA 키를 사용하면 RSA1_5, RSA-OAEP 또는 RSA-OAEP-256 알고리즘을 사용할 수 있습니다.

일부 라이브러리는 here입니다. 불행히도, JWE를 다루는 C#에는 오픈 소스 라이브러리가 없다. such library exists in PHP 오픈 소스이므로 해당 작업을 기반으로 C# 구현을 만들 수 있습니다.

+0

저에게 더 많은 이해를 제공합니다. 하나는 모듈러스와 지수입니다. 그래서 내가 무엇을해야하니? 이 두 개인 전용 정수로 JWT에 어떻게 서명 할 수 있습니까? 감사. – Sml004

+0

ikvm 님이 해결했습니다. – Sml004