2016-07-10 5 views
3

RSA으로 파일을 암호화하려고 시도했지만 toXmlString()fromXmlString 메소드가 없습니다. .net 코어에서 RSA 클래스를 사용하는 방법? 그리고 개인 키를 사용하여 암호화하고 공개 키를 사용하여 해독하려고하므로 다른 사용자는이 파일을 읽을 수만 있지만이 파일을 생성 할 수는 없습니다. 가능합니까? 순수 .NET 핵심 사용할 때.net 코어에서 RSA를 사용하는 방법

+0

다른 방법을 사용할 수 없습니까? – svick

+0

온라인에서 찾은 모든 예제는 모두'fromXmlString' 메소드를 사용합니다. 다른 방법을 보여줄 수 있습니까? – John

+1

다음과 같은 익스텐션을 사용할 수 있습니다 : https://gist.github.com/Jargon64/5b172c452827e15b21882f1d76a94be4/ –

답변

3

동안 ImportParameters(RSAParameters)ExportParameters(bool)입니다. 당신은 당신이 읽는 계속할 필요가 XML 형식의 값을 기존의 경우

, 키의 XML 형식은 매우 흥미로운되지 않습니다 : 만

공공 :

<RSAKeyValue> 
    <Modulus>[base64-encoded value]</Modulus> 
    <Exponent>[base64-encoded value]</Exponent> 
</RSAKeyValue> 

공공 + 민간 :

(각 명명 된 XML 요소가 RSAParameters 구조체에 같은 이름의 필드에 매핑)
<RSAKeyValue> 
    <Modulus>[base64-encoded value]</Modulus> 
    <Exponent>[base64-encoded value]</Exponent> 
    <P>[base64-encoded value]</P> 
    <Q>[base64-encoded value]</Q> 
    <DP>[base64-encoded value]</DP> 
    <DQ>[base64-encoded value]</DQ> 
    <InverseQ>[base64-encoded value]</InverseQ> 
</RSAKeyValue> 

,536,

그렇지 않으면 사용자와 응용 프로그램에 가장 적합한 직렬화 메커니즘을 사용할 수 있습니다.

+0

exportXPlameters와 ImportParameters로 자신의'ToXMlString'과'FromXmlString'을 만듭니다. 그 decrypto, 어떤 제안에 encrypto 및 공개 키에 priviate 키를 사용할 수 없습니다? – John

+3

@John 개인 키는 공개되어 있기 때문에 암호화 할 수 있지만 공개 키는 해독 할 수 없습니다. 진위성을 증명하기 위해 개인 키를 사용하는 것을 서명이라고합니다. 따라서 Encrypt와 Decrypt가 아닌 SignData와 VerifyData가 필요할 수 있습니다. – bartonjs

+0

아마도 내가 라이센스 파일을 작성하려고한다는 것을 알고 있습니다.이 라이센스는 Encrypted XML 파일 (binary formate)에 필요한 정보가 들어 있습니다. 내 응용 프로그램은 시작하기 위해 필요한 정보가 필요합니다. 그래서 암호화하고 암호 해독 할 필요가 있습니다. 현재는 AES를 사용하여 파일을 암호화하지만 누군가 내 응용 프로그램을 디 컴파일하면 AES 키를 얻을 수 있기 때문에 원하는 라이센스를 쉽게 생성 할 수 있습니다. – John

2

은 현재 적은을 얻을 : 결국

을이 일을 더 쉽게 얻을 수 있도록 당신이 나중에 빛을 더 많은 기능을 오늘 .NET 코어에 구축하고, 기대할 수있는 의미 시간은 입니다. 이제 덜 기능을 갖춘 프레임 워크와 나중에 더 많은 기능이 가 및 써드 파티 에코 시스템이 무더기로 적발됐다 (힘든)가 될 것입니다 추가 된 경우에, 또는 점프 얼리 어답터 할지 여부 우리 모두가 스스로 결정해야 할 결정.

.net 코어에서 전체 .net 프레임 워크를 타겟팅하는 경우 사용할 수 있습니다.

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
    "net461": {} 
    } 
} 

그들은 예를 들어 사용할 수 없게됩니다 다음 ToXmlStringFromXmlString 방법을 사용할 수없는

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 
관련 문제