창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by 권선중2005-06-26 14:09:46, Hit : 5351
[끼적강좌 5] 로그인 구현강좌 [3강][고급]
Homepage : http://ever2ksj.woobi.co.kr/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=open_lec&no=66
드뎌 마지막 로그인 마지막 강좌인듯하네용....

이번강은 상당히 어려운 부분입니다..
그러기에 본강은 상당히 길고 지루할것입니다...
그럼 전강에서 예고한것 처럼 암호화에 대해서강의하겠습니다..

우선 저역시 암호화에 대하여 아는것이 없다는것을 알려드립니다..^^;

주로 제가 사용하는 암호화 방식에 대하여잔깐 설명을 드리겠습니다..


데이타 -> 2진  -> 푸쉬풀암호화 = 가나다라  -> 1000000 -> 0000001
데이타 -> 2진 -> 창조압축 = 창조압축기의 소스를 기반으로 압축한것

마지막으로 제가 주로 사용하는 방식입니다..

데이타 -> 문자코드화 -> 암호화
솔직히 이름을 모르겠네요..무슨방식인지..ㅠㅠ 제가 프로그래밍에 대한 지식이 없는 관계로 이해 부탁드립니다..

예전 창조에서 라이브업데이트가 급격히 유행하던 시절 어느분?(이름이생각이..)께서 라이브업데이트소스를 공계하신적이 있습니다..그분소스에 암호화소스가 포함돼어 그것을 주로 이용하게돼었으나..한글 암호화가 안돼는 치명적인...^^

그래서 사용을....

한 2달전쯤 창조 도움말을 보던중 문수라는 명령을 보고 구현했습니다..
솔직히 간단하지 않습니다..[라이브업데이트에 포함된 명령은 강의하지 않겠습니다.. 소스를 직접참고하세요.. 소스자료실에서 라이브 업데이트로 검색하시길..

그럼 문자코드화방법을 알아봅시다..

"가"라는 문자의 코드를 보면 176,161코드가 합쳐저서 만들어진것이다..

그럼 간단히 명령을 입력해볼까요..

창조에서 창을 하나 설치후 클릭했을때에서 다음과 같은 명령을 입력해보세요..

////////// 예문 //////////////////////

문자:문1,문2;
문1:=수문(176);
문2:=수문(161);
창0.제목:=문1+문2;

///////////////////////////////////

자 실행해보세요...
클릭하고 나면 창제목이 "가"로 바뀌는 것을 보실수있을것입니다..

그럼 반대로코드화 만드는 법을 볼까요..

/////////////////// 예문 //////////////

문자:문1,문2,예문;
예문:="가";
문1:=수를문(문수(문자복사(예문, 1, 1)));
문2:=수를문(문수(문자복사(예문, 2, 1)));
창0.제목:=문1+"/"+문2;

//////////////////////////////////////////////

자 실행해보세요..
그럼 창 제목이 "176/161" 로 바뀌는 것을 보실수있을것입니다..
간단한가요..? 아님 어려운가요..
아마 이것만 가지고 놀아도 제미있을지도 모르겠네요..
하지만 여기서 끝나면 본강좌의 제목과 틀리므로 좀더 응용을 해볼까요..

다른프로그램에서도 응용할수있도록 별도의 사용자함수 파일로 만들어봅시다..

준비물

창0
사용자함수0
에디트0
버튼0
에디트1
버트1
에디트2

항상그렇트 위순서대로 설치해주셔용..

그럼 우선 사용자함수부터..

/////////////////////// [ 암호화 사용자함수입니다 ] /////////////////////

문자함수:암호화(문자:본문);    //<--- 선언문입니다..
--------------------------------------------------------------------
실수:수;수:=1;
문자:문;
본문:=공백제거(본문);             //<--- 입력된 문자의 좌우공백을 제거해주는 명령입니다.
반복{
문:=문+수를문(문수(문자복사(본문, 수, 1)))+"/";    //<----  코드화 부분 "가 ->176/161"
수:=수+1;}                                                       // 각코드는 "/"로 구분지어 복구시 코드
까지(문자길이(본문)< 수);                                 // 끝위치를 알려준다
결과:=문;                                                        //<--- 암호화 된 문자를 반환한다..

//////////////////////////////////////////////////////////////////////////

간단하죠..
반복문을이용해서 긴문장 전체를 코드로 바꾸는것입니다.. 별도의 설명이 필요없죠..


/////////////////////// [ 복호화 사용자함수입니다 ] /////////////////////

문자함수:첫복호화(문자:암호문);     //<--- 선언문입니다
-----------------------------------------------------------------------
실수:수,위치,길이;수:=1;
문자:문,문1;
문1:=암호문;
길이:=문자길이(암호문);
반복{
위치:=문자찾아("/",문1);             //<---  "/"로 코드의 끝부분을 찾는다..
만일(위치=0){ 결과:=문;나가; }    //<---- "/"없는 경우 암호문의 끝을 알려준다
아니면{
문:=문+수문(문을수(문자복사(문1, 1, 위치-1),0));  //<-- 코드를 문자화 한다 "176/161 -> 가"
문1:=문자삭제(문1,1,위치); }                              //<-- 코드가 복구된 부분을 삭제한다
수:=수+1;}
까지(위치=길이);            //<--- 솔직히 이부분은 무한으로 하여도 상관이 없다
결과:=문;                      //<--- 복호화 된 문자를 반환한다..

/////////////////////////////////////////////////////////////////////////////

조금 복잡하죠..
하지만 이해는 하시겠죠...

호호 그럼 사용자 함수가 완성됐네요..저장해두고 여러가지로 써먹을수있으니  사용자함수를 따루 저장해두세요..^^

그럼 이제 활용을 해보겠습니다..
명령은 아주 아주 간단합니다..

////////////////////////////////[버튼0.클릭했을때]//////////////////////////////

에디트1.문자:=사용자함수0.암호화(에디트0.문자);   

///////////////////////////////////////////////////////////////////////////////
에디트0의 문자를 암호화 하여 에디트1에 표기하는 명령이다 무쟈게 간단하죠..
그럼 복구 명령도  같겠죠..

///////////////////////////////[버튼1.클릭했을때]/////////////////////////////

에디트2.문자:=사용자함수0.복호화(에디트1.문자);

/////////////////////////////////////////////////////////////////////////////
역시 여시 간단하네요..
에디트1의 암호화 된문자를 에디트2에 복호화 해서 표기하는거네요...

자 다하셨다면 한번실행해보세요...

자 이로서 제가 활용하는 코드화 암복화 기법은 끝났습니다..
그럼 로그인에 적용을 해볼까요...

자그럼 다시 폼을 설치해볼가요..!

창0
사용자함수0

창0.에디트0   
창0.에디트1
창0.버튼0

창0.에디트2
창0.에디트3
창0.버튼1

폼설치는 긑났으면 사용자함수에서 위에서 저장함 암호화 함수를 불러와보세요..
불로오기를 성공했다면 시작하겠습니다..

////////////////// 버튼0을 클릭했을때입니다.. //////////////////////

문자:아이디,비밀번호;
실수:핸들;

핸들 := 환경열어("c:\test.ini"); //<--- 이부분이 환경파일을 불러 들이는 부분입니다..
아이디:=환경문읽어(핸들, "개인정보", "아이디", "");         //<--- 저장된 아이디를 읽어옴
비밀번호:=환경문읽어(핸들, "개인정보", "비밀번호", "");   //<--- 저장된 비밀번호를 읽어옴

//-----------------[ 기존 2강에서 추가된 부분입니다...]----------------------

아이디:=사용자함수0.복호화(아이디);                         
비밀번호:=사용자함수0.복호화(비밀번호);  

// 환경문에 저장된 아이디와 비밀번호를 복호화 하여줍니다..
//-------------------------------------------------------------------------

환경닫아(핸들);    //환경파일을 닫는 부분입니다..

만일(아이디=에디트0.문자)
{  만일(비밀번호=에디트1.문자);
   {문자창보여("로그인 성공"); }
   아니면
   {문자창보여("로그인 실패"); }
}
아니면 
{문자창보여("로그인 실패"); }

///////////////////////// 명령의 끝입니다...//////////////////////////////

위 중간에 삽이된 부분을 제외 하가 나머지는 2강 과 같습니다..
그럼 저장법을 볼까요...


///////////////////////버튼1을 클릭했을때입니다..////////////////////////////


문자:아이디,비밀번호;
실수:핸들;
아이디 := 에디트2.문자;     // 에디트2에 지정한 문자를 아이디로 지정함
비밀번호 : 에디트3.문자;    // 에디트3에 지정한 문자를 비밀번호로 지정함

//-----------------[ 기존 2강에서 추가된 부분입니다...]----------------------

아이디:=사용자함수0.암호화(아이디);                         
비밀번호:=사용자함수0.암호화(비밀번호);  

// 환경문에 저장된 아이디와 비밀번호를 암호화 하여줍니다..
//-------------------------------------------------------------------------


핸들 := 환경열어("c:\test.ini"); //<--- 이부분이 저장할 환경파일을 불러 들이는 부분입니다..
환경문써(핸들, "개인정보", "아이디", 아이디);         //<--- 아이디 저장
환경문써(핸들, "개인정보", "비밀번호", 비밀번호);   //<--- 비밀번호 저장
환경닫아(핸들);    //환경파일을 닫는 부분입니다..

///////////////////////// 명령의 끝입니다...//////////////////////////////
역시 중간 2줄만 추가돼었네요..
상당히 간단하죠..


그럼 강을 간단히 정리해보겠습니다..




아이디,비밀번호 입력
          |
저장됀 아이디 비밀번호 읽기
          |
읽어드린 아이디 비밀번호 복호화
          |
입력된 데이타와 비교  -------------
    yes |                                   no |
      로그인                             로그인 실패
                    [ 로그인 구조]


아이디, 비밀번호 입력
            |
입력한 데이타 암호화
            |
암호화 된 데이타 저장

[ 로그인 데이타 저장]

위 두데이타를 하나의 트리로 만들면 암호변경 트리가 돼겠죠..
이분은 따로 강의하지 않겠습니다.

3일간 별볼일 없는 저의 강의를 읽어주신분들께 감사드립니다..


PS. 제 강의에 대해 테클 걸명 강의 폭파합니다..ㅋㅋㅋㅋ
      


qkrwhdgns   2005-06-26 PM 5:09:21  
고급이라.. 그런지.. 어려운.. ㅠㅠ
하지만.. 태클은 아닙니다. ^^;; 폭파하지 마세요..~~!~!
이희창[빙고]   2005-06-26 PM 6:16:38  
이렇게하면 한쌍(ID,PW)의 아이디 가 생기는데 여러개 는 못만드나요;;
일일이 아이디1 비밀번호1 이런식으로.. 해야...?
권선중   2005-06-26 PM 6:21:18  
그부분은 Tip게시판을 참고해주세요..
LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
69
   리소스 해커를 이용하여 DLL 파일안의 HTML 문서 넣기! [4]
qkrwhdgns 2005/07/20  5662
68
   [끼적강좌 8]RPG게임을 만들어보자 [1강] [3]
권선중 2005/07/16  6065
67
     [re] [끼적강좌 8]RPG게임을 만들어보자 [2강] [1]
권선중 2005/07/17  5694
66
   [끼적강좌7] 달력 구현강좌 [1강][초급]
권선중 2005/07/11  5146
65
     [끼적강좌7] 달력 구현강좌 [2강][고급]
권선중 2005/07/15  4850
64
       [끼적강좌7] 달력 구현강좌 [3강][응용]
권선중 2005/07/16  4632
63
   [끼적강좌 6] 선중이 계발한 암호화구현 [7]
권선중 2005/06/29  4860
62
   [끼적 강좌] 기본문법을 알아야 한다...! [10]
권선중 2005/06/27  4921
61
   [끼적강좌 5] 로그인 구현강좌 [1강][초급] [6]
권선중 2005/06/24  5446
60
     [끼적강좌 5] 로그인 구현강좌 [2강][중급] [2]
권선중 2005/06/25  5567

       [끼적강좌 5] 로그인 구현강좌 [3강][고급] [3]
권선중 2005/06/26  5351
58
         [re] [끼적강좌 5] 로그인 구현강좌 [4강][다계정 구현] [5]
권선중 2005/06/27  5003
57
   마우스 오른쪽 눌렀을때의 메뉴 뜨게하기(초보용)
이시영 2005/02/02  5143
56
   [쉬운강좌1]환경파일 다루기 [3]
정성우 2005/01/11  5461
55
   영문 윈도우에서의 창조로 만든 프로그램.. [16]
손상진 2005/01/02  5942
54
   [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [2]
ps.이진백 2004/12/31  6308
53
     [re] [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [1]
지상현 2005/01/01  5622
52
   창조의 한계를 뛰어 넘어서 #1: '문자' 포인터 써먹기 [4]
지상현 2004/11/23  6931
51
   [ps.구루 강좌#11] 서비스팩2에서 프로그램 추가/제거 설정
ps.이진백 2004/10/26  5464
50
   대박로또에 적용된 자동업데이트 알고리즘.. [7]
최재일 2004/09/13  7935
49
   [삐까뻔쩍강좌] 오랜만에 글쓰네.. [10]
박재성[날개달기] 2004/09/07  4982
48
   [보충강좌#10-1] *.Res를 위한 *.Rc [1]
ps.이진백 2004/08/12  6153
47
   [강좌#10] DLL에 HTML 쑤셔넣기 [6]
ps.이진백 2004/08/06  6210
46
   방금생각한 암호화 알고리즘 - -;; [2]
박재성[날개달기] 2004/07/29  5666
45
   [끼적강좌 4] 창조 구현 DB강좌 [1강] [5]
권선중 2004/07/25  5825
LIST ALL   Prev [1][2] 3 [4][5] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인