2011-12-23 2 views
1

좋아, 나는 Base64로 인코딩 된 문자열을 가지고 있습니다.C#에서 * .Pem 파일로 문자열 해독

이것을 Base64에서 바이트 배열로 디코드 한 다음 내 개인 키로 암호를 해독하고 싶습니다. 내 개인 키는 * .pem 파일입니다. 나는 길을 잃었다!

바이트 배열을 선언하고, 텍스트를 가져 와서 * BEGIN --- 및 --- END --- 내 * .pem 사이에서 추출한 다음 기본 64 문자열을 다음과 같이 변환해야한다고 생각합니다. 내 바이트 배열의 결과.

byte[] myprivateKey = Convert.FromBase64String("BASE 64 ENCODED PRIVATE KEY GOES HERE"); 
X509Certificate2 myPem = new X509Certificate2(myprivateKey, "MY PASSPHRASE"); 
:

나는 다음 텍스트 문자열 내 암호 아래와 같이되고, 바이트 배열 내 개인 키 인 X509Certificate2을 선언하고 바이트 배열과 텍스트 문자열을 취하는 생성자를 사용할 필요가

그러나이 시점에서 다음 오류가 발생합니다.

요청한 개체를 찾을 수 없습니다.

나는 적어도 올바른 방향으로 가고 있습니까? 여기서 무엇을해야합니까?

답변

1

X509Certificate2PEM base64 인코딩 파일에서 개인 키를 읽지 않습니다. 인증서와 별도로 개인 키를 읽은 다음 PrivateKey 속성을 할당해야합니다.

자세한 내용은 how to get private key from PEM file?을 참조하십시오.

+0

감사합니다. "ASN1"과 "X509ExtensionCollection"은 어디에서 찾을 수 있습니까? 어떤 참조 문헌을 사용해야합니까? Thankyou – JMK

+0

이것은 Mono.Security.dll (Mono의 일부이지만 MS.NET에서도 작동 함)의 일부입니다. 전체 소스 코드는 https://github.com/mono/mono/tree/master/mcs/class/Mono.Security에서 얻을 수 있습니다. – poupou

+0

죄송합니다. 한 가지 더 질문이 있습니다. 다운로드하여 추가 할 수있는 실제 DLL 파일이 있습니까? 내 프로젝트? 아니면이 링크에서 프로젝트를 다운로드하고 추가해야합니까? 감사합니다 – JMK