게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[VB6.0]네이버 로그인 RSA
게시물ID : programmer_4144짧은주소 복사하기
작성자 : EunChae91
추천 : 4
조회수 : 4582회
댓글수 : 1개
등록시간 : 2014/06/23 13:49:24

%BF%A9~1.PNG

TrackBack : http://foxstar.dicki.kr/220027200724

목차 

1​.RSA란?

2.네이버 로그인 RSA

3.VB6.0 Script Control

3-1.참조

3-2.선언과 사용

3-3.초기화 및 컴파일

3-4.Run

4.코딩  


1.RSA란?


​자세히 설명하기엔 이 글의 취지에서 벗어나는 것 같아 간단하게 설명하겠다.

Rivest Shamir Adleman의 약어. RSA란 이름은 이 알고리즘을 만든 Ron Rivest, Adi Shamir와 Leonard Adleman 세 사람의 이름을 따서 만들었으며, 비대칭형 암호 방식의 일종이다. 메시지를 보내는 사람과 받는 사람이 서로 다른 키를 가짐으로써 키 전송의 위험을 방지한 것으로, RSA에서 암호화 키는 두 개로 구성되며, 두 개의 키 중에서 하나는 전송할 필요가 없으므로 보안성이 증대되지만 키의 크기가 크므로 암호화의 속도가 느리다.

[네이버 지식백과] RSA [Rivest Shamir Adleman] (컴퓨터인터넷IT용어대사전, 2011.1.20, 일진사)

 

2.네이버 로그인 RSA

일단 네이버 RSA 로그인 순서를 말씀드리겠습니다.
네이버는 로그인을 시도할 때 http://static.nid.naver.com/enclogin/keys.nhn리퀘스트 합니다.
해당 페이지를 들어가 보시면 아시겠지만 알 수 없는 값이 나열되어 있을 것입니다.

순서대로 RSAKey를 만들기 위한 SessionKey, keyName, eValue, nValue를 뜻합니다.

 

이제 RSAKey를 만들어야 하는데 네이버 로그인의 RSA 자바스크립트를 받아주세요.(블로그 첨부파일. 링크

 

주요 함수인 createRsaKey 함수의 파라미터는 id, pw, sessionKey, keyName, eValue, nValue입니다.
앞에서 파싱 해둔 값이 파라미터로 사용되는 것이지요.

[RSA 함수에 대한 자세한 설명은 언급하지 않겠습니다. 괜히 복잡하기만하고 쓰잘데기도 없거든요.] 

​3.VB6.0 ScriptControl

ScriptControl은 MicroSoft 사에서 개발하여 프로그램상에서 각종 Script를 사용할 수 있도록 도와주는 라이브러리입니다.

3-1.참조

이와 같은 라이브러리를 이용하기 위해선 프로젝트 내에 해당 라이브러리를 참조해야 합니다. 참조하는 방법은 아래를 참고하세요.

a_01.png

상단 메뉴에서 프로젝트(P)-참조(N)을 클릭하여 참조 대화상자를 띄워주세요.
a_02.png

참조 대화상자에서 스크롤을 중간쯤으로 내린뒤 Microsoft Script Control 1.0을 체크해주세요.

 

이 과정까지 진행을 하셨다면 이제부터 소스코드를 직접 입력하는 코딩작업을 해야합니다.

 

3-2.선언과 사용

위 과정에서 참조한 ScriptControl 라이브러리를 사용하기 위해선 변수를 선언하는 것처럼 ScriptControl 객체를 선언해줘야 합니다.
소스 코드 최상단에 Dim cScript As New ScriptControl을 입력함으로써 cScript이라는 이름으로 새로운 ScriptControl 객체를 선언해주시면 됩니다.

 

이제부터는 본격적으로 사용에 대해 설명하도록 하겠습니다.

 

3-3.초기화 및 컴파일

​ScriptControl을 사용하기 위해선 어떤 스크립트를 사용할지 먼저 지정해주어야 합니다.


지정방법은 선언한 ScriptControl의 속성을 이용해 지정 할수 있습니다.

앞에서 cScript라는 이름으로 선언하였기에


cScript.Language = "Javascript" 'ScriptControl의 언어를 Javascript로 지정합니다.

cScript.Reset 'ScriptControl을 초기화시켜줍니다.


초기화는 위와같이 해주시면 되며, 컴파일을 해야합니다. 컴파일은 프로그래밍을 할때의 그 컴파일이 맞습니다. 여기서는 프로그램 대신 스크립트를 컴파일 해주는것이지요.


cScript.AddCode ScriptCode 'cScript에 ScriptCode를 추가합니다


Code를 추가해줌으로써 컴파일을 해주는것입니다.


3-4.Run

​이제 본격적으로 컴파일된 스크립트를 이용하여 Javascript내의 함수를 이용해볼 차례입니다.


함수를 이용하는 방법은


cScript.Run(함수명,파라미터1,파라미터2,파라미터3,...)


꼴로 사용할 수 있습니다.


4.코딩

VB6.0을 기준으로 코딩 절차를 말씀해드리도록 하겠습니다.

 

​먼저 2과정에서 말씀드렸듯이 http://static.nid.naver.com/enclogin/keys.nhn 에서 필요한 값들을 변수에 담아주세요.

그 다음에 3-3에서 설명해드린 .Language와 .Reset 속성을 이용해 초기화 해주신뒤에 .AddCode 속성을 이용해 ScriptCode를 추가해줍시다.(2에서 언급한 첨부파일의 RSA.js의 Code를 추가해주시면 됩니다.)


이 과정까지 진행을 하셨다면 이제 3-4에서 언급한 것처럼. Run 속성을 이용해 ScriptControl을 구동해주시면 됩니다.
2과정에서도 언급했지만 createRsaKey 함수가 가장 중요한 함수이기 때문에 해당 함수를 Run 해주세요.

 

cScript.Run("createRsaKey", Id, Pw, SessionKey, keyname, evalue, nvalue)

 

해당 함수를 보시면 return rsa.encrypt(comVal + getLenChar(pw) + pw); 즉, 암호화된 값을 반환하기때문에 변수에 Run한 값을 담아주세요.

 

그리고 Run한 값을 이용해 WinHttp를 이용해 POST해줍시다.

 

URL : https://nid.naver.com/nidlogin.login

Header : User-Agent,Content-Type

Parameter : enctp(기본 값 : 1)

encpw(Run한 값,RSA Key값)

encnm(keyname)

svctype(로그인 상태 유지 사용 여부인것같은데 그냥 0으로쓰세요.)

url(로그인 성공후 이동할 URL인것 같습니다.기본 값 : http://naver.com/)

enc_url(기본 값 : 앞의 url 파라미터를 인코딩한 값입니다.http%3A%2F%2Fwww.naver.com%2F)

smart_level(보안 레벨인 것 같습니다.전 -1로 되어있네요.)

 

이렇게 POST 해주시면 무난하게 로그인을 성공하실 수 있습니다

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호