블로그 이미지
공부하는 것을 정리해서 올려둔 블로그입니다.
신사과

Notice

Recent Comment

Recent Trackback

Archive

calendar

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
  • 381,706total
  • 10today
  • 48yesterday

'컴퓨터'에 해당되는 글 2건

  1. 2014.01.03 C 언어로 만든 암호화 복호화프로그램 (44)
2014.01.03 16:48 프로그래밍/C 언어

안녕하세요 오랫만에 포스팅을 하게 되었네요.ㅎㅎ

오늘은 C 언어로 간단하게 만든 암호화 복호화 프로그램을 올리도록 하겠습니다.


암호화 복호화 프로그램 소개




초기 접근 권한은 신사과 입니다.





프리미엄 사용자로 넘어가기 위해서는 또 다른 접근권한이 필요하게 됩니다. 이때는 첨부한 vippasswd.dat 파일이 프로그램 exe 파일과 같은 위치에 저장되어 있어야 접근 권한을 입력 받는 곳으로 넘어가게 됩니다. 만약 파일이 없다면 다시 초기 화면으로 넘어가게 됩니다.





스코드 


#include <stdio.h>

#include <string.h>

#include <Windows.h>


void menu();

void lock();

void nomal();

void vip();

void nomalcry(char *str);

void nomalkey();

void vipcry(char *str);

void vipkey();

void vippass();


void main()

{

lock();

}


void lock()

{

char pass[50];

char passke[]="신사과";


printf("               ★★\n");

printf("             ◎   ◎\n");

printf("            ◎     ◎\n");

printf("           ◎       ◎\n");

printf("          ◎         ◎\n");

printf("          ◎         ◎\n");

printf("          ◎         ◎\n");

printf("    ■■■■■■■■■■■■■\n");

printf("    ■**********************■\n");

printf("    ■**********************■\n");

printf("    ■*******■■■■■*****■\n");

printf("    ■*******■      ■*****■\n");

printf("    ■*******■    ♨■*****■\n");

printf("    ■*******■      ■*****■\n");

printf("    ■*******■■■■■*****■\n");

    printf("    ■**********************■\n");

printf("    ■■■■■■■■■■■■■\n\n\n");


printf("접근 권한 입력 : ");

scanf("%s",pass);

getchar();


if(!strcmp(pass,passke))

{

menu();

}

else

{

printf("\n허가된 사용자가 아닙니다!!!!\n");

exit(0);

}

}



void menu()

{

int i=0;

system("cls");


for(;;)

{

system("cls");

printf(" \n\n\n\n\n\n ------ ㈜ 암호화 프로그램 ------ \n");

printf("§                              §\n");

printf("§ 1. 일반 사용자               §\n");

printf("§                              §\n");

printf("§ 2. 프리미엄 사용자           §\n");

printf("§                              §\n");

printf("§ 3. 종료                      §\n");

printf("§                              §\n");

printf(" --------------------------------\n");

printf("\n숫자 입력 : ");

scanf("%d",&i);

getchar();


if(i<=3)

{

break;

}

else

{

continue;

}

}

switch(i)

{

case 1:

nomal();


case 2:

vippass();


case 3:

exit(0);

}


}


void nomal()

{

int i=0;

char str[1000];

system("cls");


for(;;)

{

printf("\n\n\n▣      ▣       ▣▣      ▣        ▣        ▣▣       ▣\n");

printf("▣▣    ▣     ▣    ▣    ▣▣    ▣▣       ▣  ▣      ▣\n");

printf("▣ ▣   ▣    ▣      ▣   ▣ ▣  ▣ ▣      ▣    ▣     ▣\n");

printf("▣   ▣ ▣     ▣    ▣    ▣  ▣▣  ▣     ▣▣▣▣▣    ▣\n");

printf("▣      ▣       ▣▣      ▣   ▣   ▣    ▣        ▣   ▣▣▣▣▣\n");

printf("=====================================================================\n\n");


printf("1. 메세지 입력\n\n");

printf("2. 암호화\n\n");

printf("3. 복호화\n\n");

printf("4. 메인메뉴\n");

printf("\n숫자 입력 : ");

scanf("%d",&i);


if(i>4)

{

continue;

}

switch(i)

{

case 1:

printf("메세지를 입력해 주십시오. \n");

getchar();

gets(str);

break;

case 2:

nomalcry(str);

break;

case 3:

nomalkey();

break;

case 4:

menu();

break;

}

}

}


void nomalcry(char *str)

{

int i=0;

FILE *fp=NULL;

fp=fopen("nomal.txt","wt");

printf("\a\a\a\a");

while(str[i]!=NULL)

{

str[i]+=34;

i++;

}


fputs(str,fp);

fclose(fp);

}


void nomalkey()

{

int i=0;

char mo[10000];

FILE *fp=NULL;

fp=fopen("nomal.txt","rt");


if(fp==NULL)

{

puts("암호화된 메세지가 존재하지 않습니다.");

nomal();

}


fgets(mo,sizeof(mo),fp);

while(mo[i]!=NULL)

{

mo[i]-=34;

i++;

}

printf("\n복호화 완료 \n%s \n",mo);

fclose(fp);

}


void vippass()

{

int i=0;

char key[20];

char pas[20];

int ke=2014;

FILE *fp;

fp=fopen("vippasswd.dat","r");

if(fp==NULL)

{

puts("VIP 패스워드 파일이 존재하지 않습니다!!!\n\n\a\a\a\a");

lock();

}


fgets(pas,sizeof(pas),fp);


printf("VIP 접근권한을 입력해 주십시오 :");

scanf("%s",key);

getchar();

while(pas[i]!=NULL)

{

pas[i]^=ke;

i++;

}


if(!strcmp(pas,key))

{

vip();

}

else

{

printf("VIP 접근권한이 아닙니다!!\n\n\a\a\a\a");

lock();

}


fclose(fp);

}


void vip()

{

int i=0;

char str[1000];

system("cls");


for(;;)

{

printf("\n\n▣        ▣   ▣    ▣▣▣\n");

printf(" ▣      ▣    ▣    ▣   ▣\n");

printf("  ▣    ▣     ▣    ▣▣▣\n");

printf("   ▣  ▣      ▣    ▣\n");

printf("    ▣▣       ▣    ▣\n\n");

printf("▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤\n\n");


printf("1. 메세지 입력\n\n");

printf("2. 암호화\n\n");

printf("3. 복호화\n\n");

printf("4. 메인메뉴\n");

printf("\n숫자 입력 : ");

scanf("%d",&i);


if(i>4)

{

continue;

}


switch(i)

{

case 1:

printf("메세지를 입력해 주십시오. \n");

getchar();

gets(str);

break;


case 2:

vipcry(str);

break;

case 3:

vipkey();

break;

case 4:

menu();

break;

}

}

}



void vipcry(char *str)

{

int i=0;

int xor=229;


FILE *fp=NULL;

fp=fopen("vip.txt","wt");

printf("\a\a\a\a");

while(str[i]!=NULL)

{

str[i]+=13;

str[i]^=xor;

str[i]=~str[i];

i++;

}

fputs(str,fp);

fclose(fp);

}


void vipkey()

{

int i=0;

int xor=229;

char mo[10000];


FILE *fp=NULL;

fp=fopen("vip.txt","rt");

if(fp==NULL)

{

puts("암호화된 메세지가 존재하지 않습니다.");

vip();

}

fgets(mo,sizeof(mo),fp);


while(mo[i]!=NULL)

{

mo[i]=~mo[i];

mo[i]^=xor;

mo[i]-=13;

i++;

}


printf("복호화 완료 \n%s\n\n",mo);

fclose(fp);

}



다운파일





고고 소스는 오픈소스입니다.


    소스파일을 원하시는 분은 덧글로 메일 주소를 남겨주시길 바랍니다. 확인하       는 즉시 소스파일을 메일로  전송해 드리도록 하겠습니다.



posted by 신사과

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 허니울보 2014.04.09 01:56 신고  Addr  Edit/Del  Reply

    안녕하세요 저두 c 언어 배우는 학생인데요 예제로 연습 해보기 좋을것 같아서 소스파일 요청 합니다. fjf1417@naver.com으로 보내주시면 감사히 사용하겠습니다.

  3. 허니울보 2014.04.09 13:54 신고  Addr  Edit/Del  Reply

    감사합니당 메일이 총알이네용 ㅎㅎ

  4. 조조 2014.06.05 05:12 신고  Addr  Edit/Del  Reply

    안녕하세요 c언어를 배우는 학생인대요. 제가 보안쪽에 관심이 있어서 공부를 해보려고 합니다. 이 예제가 도움이 될 거 같아서 소스파일 요청드려요 ckdtjddl113@nate.com 보내주시면 감사하겠습니다.

  5. 소스좀요.. 2014.07.20 12:13 신고  Addr  Edit/Del  Reply

    정보보호학과 학생인데 소스코드로 공부하고싶어요
    제 메일은 seojh1431@naver.com 입니다. 감사합니다.

  6. 소스좀요.. 2014.07.22 18:46 신고  Addr  Edit/Del  Reply

    감사합니다. 잘 받았습니다. vip로 들어가려면 신사과의블로그라고 쳐야하는데 어떻게 이렇게 설정을 하신거에요?


    while (pas[i] != NULL)
    {
    pas[i] ^= ke;
    i++;
    }

    이 while문이 pas배열과 ke를 xor 연산 시키면 신사과의 블로그가 된다는건데..어떻게 되는거죠?

    • 신사과 2014.07.22 22:06 신고  Addr  Edit/Del

      파일중에 vippasswd.dat 라는 파일이 있을거에요. 그 파일을 텍스트 형태로 바꿔보시면 신사과의 블로그 를 2014 로 미리 xor 연산한 값이 들어있을거에요.

      그것을 불러와 pas 배열에 넣고 ke와 xor 연산을 시키면 다시 신사과의 블로그 가 되게 만들었습니다 ㅎ

  7. 복숭아 2014.09.03 23:19 신고  Addr  Edit/Del  Reply

    안녕하세요 정보보안전문가를 꿈으로 하는 학생인데 소스파일을 dohyun722@daum.net으로 보내주신다면 감사하게 이용하겠습니다.

  8. 허증재 2015.02.22 20:55 신고  Addr  Edit/Del  Reply

    안녕하세요 수고가 많으세요 보안쪽을 공부하고 싶어서요
    소스 부탁드립니다
    subongjj@hanmail.net 입니다

  9. 2016.05.27 13:15  Addr  Edit/Del  Reply

    비밀댓글입니다

  10. 컴공과학생 ㅜㅜ 2016.11.12 18:16 신고  Addr  Edit/Del  Reply

    컴공과 다니는 1학년 학생입니다.!

    블로그를 보고 복호화 암호화 프로그램에 관심이 생겨서요!!

    혹시 가능하시다면 lono1256@naver.com 으로 보내주시면 안됄까요??ㅜㅜ

  11. 이거보실지 모르시겠지만.. 2018.08.06 22:06 신고  Addr  Edit/Del  Reply

    안녕하세요 C언어 를 배우고 있는 학생입니다.
    소스를 혹시 받을수 있나요? 메일은 xodrn0724@naver.com 입니다.

  12. 2018.10.01 16:20  Addr  Edit/Del  Reply

    비밀댓글입니다

  13. 2018.11.08 09:12  Addr  Edit/Del  Reply

    비밀댓글입니다

  14. 기계과 2018.11.08 11:45 신고  Addr  Edit/Del  Reply

    안녕하세요 c언어를 공부하고있는 학생입니다.
    괜찮으시다면 소스파일을 받을 수 있을까요..?

  15. 보매아 2018.11.20 21:19 신고  Addr  Edit/Del  Reply

    jhong2020@naver.com 보내주실 수 있나요ㅠㅠ

  16. 2018.12.03 12:21  Addr  Edit/Del  Reply

    비밀댓글입니다

  17. 제발부탁드립니다!! 2018.12.07 16:47 신고  Addr  Edit/Del  Reply

    혹시 소스파일 좀 받을 수 있을까요??
    sjh030504@gmail.com 입니다..

  18. 부탁드립니다. 2018.12.13 14:42 신고  Addr  Edit/Del  Reply

    혹시 소스파일좀 부탁드려도 되겠습니까?
    jinw810@naver.com 입니다.

  19. 이상원 2019.01.10 19:54 신고  Addr  Edit/Del  Reply

    jsok1384@naver.com
    여기로 보내주시면 감사드리겠습니다

  20. 2019.02.06 05:36  Addr  Edit/Del  Reply

    비밀댓글입니다

  21. 2019.03.05 00:31  Addr  Edit/Del  Reply

    비밀댓글입니다