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


LIST ALL
Posted by 권선중2005-06-26 14:09:46, Hit : 5364
[끼적강좌 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
119
   창조에서 반올림하기 [1]
지상현 2013/01/05  5014
118
   컴퓨터에서 소수점을 표기하는 방식에 대해 [1]
지상현 2012/01/03  7527
117
   창조의 변수형에 대한 고찰 [1]
지상현 2012/01/03  5787
116
   창조 초보자들을 위한 아주 기본적인 사용법
김대명 2011/03/09  6225
115
   객체 배열을 정복해보자! [1]
지상현 2010/06/28  6995
114
   [0강] 그림판에 그림을 그려보자!
박종훈 2009/10/24  6632
113
     [1강] 그림과 관련된 객체
박종훈 2009/10/24  5764
112
       [2강] ㅎ그림판에 그림을 그리기 위해 준비단계
박종훈 2009/10/24  5974
111
   [수정!] 직선, 사각형, 타원, 원, 호, 현을 그려보자! [4]
박종훈 2009/05/10  6662
110
     [0강] ㅎ배경의 좌표 체계에 대해서 알아보자! [2]
박종훈 2009/10/24  7025
109
       [1강] 직선을 그려보자!
박종훈 2009/10/24  7727
108
         [2강] 사각형을 그려보자!
박종훈 2009/10/24  5625
107
           [3강] 타원을 그려보자! (원 포함)
박종훈 2009/10/24  8377
106
             [4강] 현, 호를 그려보자! [4]
박종훈 2009/10/24  6263
105
     호현계산기2 Rev2 [6]
박종훈 2009/10/23  5876
104
   기타 자료실에 있는 다람쥐어 (파악해 보자_) [2]
김제형 2009/05/03  5778
103
   맞짱! 포인터(Pointer) - 3부 [창조에서 포인터를 사용해보자!] ... 제작중
박종훈 2009/02/26  5937
102
   맞짱! 포인터(Pointer) - 2부 [C언어 포인터 존재를 확인하자!]
박종훈 2009/02/26  7297
101
   맞짱! 포인터(Pointer) - 1부 [C언어 들춰보자!] [7]
박종훈 2009/02/26  6275
100
   자연수들의 합 쉽게 구하는 방법(수학과 프로그래밍) [7]
박종훈 2009/02/15  6128
99
   창조입문 : 메모장 만들기 [2]
신용주 2008/12/20  7553
98
   창조와 ActiveX (2)
지상현 2007/08/11  10801
97
   창조와 ActiveX (1)
지상현 2007/08/07  8285
96
   골칫거리 ㅎ사용자함수 DLL하나로 해결하기! [7]
박종훈 2007/06/23  7113
95
   환경파일로 파워유저되어보자![개정판] [예제/사용!] 2 [6]
박종훈 2007/01/02  7771
LIST ALL   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이희철
로그인