성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[tree soap] 아차! f는 기억이 나는데, m은 ㅜㅜ 감사합니다!!! ^...
[정성태] 'm'은 decimal 타입의 숫자에 붙는 접미사입니다. ...
[정성태] https://lxr.sourceforge.io/ http...
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>RSAParameters의 ToXmlString과 ExportParameters의 결과 비교</h1> <p> 아래의 글에 덧글로 질문이 하나 달렸는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > RSAParameters와 System.Numerics.BigInteger 이야기 ; <a target='tab' href='http://blog.naver.com/techshare/100159602002'>http://blog.naver.com/techshare/100159602002</a> </pre> <br /> 질문의 요지는, 다음과 같이 RSAParameters로부터 서로 다른 방법으로 키를 뽑아냈는데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { RSAParameters rsaParam = RSA.ExportParameters(true); byte[] temp1 = rsaParam.Q; // 바이트 배열로 추출한 Q 인자 String s = RSA.ToXmlString(true); // XML로 추출한 키 XmlDocument doc = new XmlDocument(); doc.LoadXml(s); XmlNodeList xmllist = doc.SelectNodes("/RSAKeyValue/Q"); XmlNode node = xmllist[0]; string ss = node.InnerText; // XML 내용 중 Q 인자의 문자열만 추출 } </pre> <br /> temp1 바이트 내용과 ss 문자열의 내용이 어떤 관계인지를 모르겠다는 것입니다. <br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ss의 내용을 출력 - Console.WriteLine(ss); uXYhzfSIZumJ5N2H8jx+qGisoSL6KYyCdyGSn7NEg2L5lJ5Aa+x9mUvQq3L2Ns5EvJAOIOGeLtY9Ys+bsmEzbw== temp1의 내용을 출력 - Console.WriteLine(BitConverter.ToString(temp1)); B9-76-21-CD-F4-88-66-E9-89-E4-DD-87-F2-3C-7E-A8-68-AC-A1-22-FA-29-8C-82-77-21-92-9F-B3-44-83-62-F9-94-9E-40-6B-EC-7D-99-4B-D0-AB-72-F6-36-CE-44-BC-90-0E-20-E1-9E-2E-D6-3D-62-CF-9B-B2-61-33-6F </pre> <br /> ss의 내용에 보면 끝에 "=="라는 문자열이 보이는데요. Base64 인코딩되었다는 것을 의미하지요. 그래서 다음과 같이 검증해 볼 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Console.WriteLine(Convert.ToBase64String(temp1) == ss); </pre> <br /> 당연히 True가 출력됩니다.<br /> <br /> 여기까지 읽으면 재미없는 분도 있으실 테니 ^^ 시간되시면 다음의 글들도 읽어보시면 좋겠지요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > RSACryptoServiceProvider의 공개키와 개인키 구분 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1218'>http://www.sysnet.pe.kr/2/0/1218</a> C# - Rabin-Miller 소수 생성방법을 이용하여 RSACryptoServiceProvider의 개인키를 직접 채워보자 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1300 '>http://www.sysnet.pe.kr/2/0/1300 </a> </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1898
(왼쪽의 숫자를 입력해야 합니다.)