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

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 31    
  • 390,723total
  • 18today
  • 40yesterday
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.06.05 05:12  Addr  Edit/Del  Reply

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

  3. 소스좀요.. 2014.07.20 12:13  Addr  Edit/Del  Reply

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

  4. 소스좀요.. 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 연산을 시키면 다시 신사과의 블로그 가 되게 만들었습니다 ㅎ

  5. 복숭아 2014.09.03 23:19  Addr  Edit/Del  Reply

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

  6. 허증재 2015.02.22 20:55  Addr  Edit/Del  Reply

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

  7. 2016.05.27 13:15  Addr  Edit/Del  Reply

    비밀댓글입니다

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

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

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

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

    • 신사과 2016.11.14 00:47  Addr  Edit/Del

      복사 하셔서 가져가시면 되십니다. ㅎ

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

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

  10. 2018.10.01 16:20  Addr  Edit/Del  Reply

    비밀댓글입니다

  11. 2018.11.08 09:12  Addr  Edit/Del  Reply

    비밀댓글입니다

  12. 기계과 2018.11.08 11:45  Addr  Edit/Del  Reply

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

  13. 보매아 2018.11.20 21:19  Addr  Edit/Del  Reply

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

  14. 2018.12.03 12:21  Addr  Edit/Del  Reply

    비밀댓글입니다

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

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

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

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

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

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

  18. 2019.02.06 05:36  Addr  Edit/Del  Reply

    비밀댓글입니다

  19. 2019.03.05 00:31  Addr  Edit/Del  Reply

    비밀댓글입니다

  20. 2019.05.06 17:17  Addr  Edit/Del  Reply

    비밀댓글입니다

  21. 카타라스 2019.08.13 12:15  Addr  Edit/Del  Reply

    아래 파일이 암호화 된거 같기두 하고 풀고 싶은데 도대체 모르겠네요
    알수 있을가요?
    확장자명은 CFG 입니다. 텍스트 창에서 연거에요

    ? ???쾧%?)oUf쪩?]lW???_t,9;g㏄\ I\S$ㅼh砧Ow깞H 쿈첀?F??f??h 짏A홒蓴썁沈럐퇊?[=?瓷茨?띄툺獗: 顚?넹茵셠9뿄써?뙚?₄웃ykN?륒L?d뱁쁮?[dQ2a?O??짖쾅{L"엲뫸'굘꼣k렍??퉰??뵆dL꽿射?훏?€b絅Q?ラ콃쒞?5⑭1 T돤?W??r?5줇,쎧?y둲uE7? ,L콓Rds롙녤>j8v?t쌰堆fq율y??9bL??f7了規얗꼫掉俱W\歡픊俠盲쌏팏났?]<g7通7츰車寫廓嗾?91뙚?ごa力瘠?gU댤측Q????있0???UG[O~??롙n?-?=(?쇗롺O兄笭~:웨??O袖?렝봟뽨bUJ끲?0?<튋%??윓?w껗防??낥딑茂좷핢n추?攪3?옺f?T??w€,??航″??p????뿃췅+@徨??.?^a毁T艇p&핉3黎콷??뷴?놙4뫗Q:?췸i?5????힊e叡旒)췻 3K??촄?숯?f濯禧^ ???1?|얨朝?述|?쭽e샠0_??D냓???%熏]??Vg?뺑L?徵??$x?R트楹몢?돺꿄냷3?v憐쟽끸세鰕.Q????+?NDN5雲몓?
    ?퍇 ^I▤]?范층;뜰딥嚮?L?혟?"P?욁?? ?偏퐶wg??8?秤u;춙熏쎧?;??nR쐻컯,?dN?f췱{뉤朞?混ㅩ>?6訊a옼?)?Z畯4??횋
    G괻?3??A!쒴rF:??B작?h煇?d쿏
    ZN??Pj귵?&?1+W?|覲햺轟3?G?흔1A?>q HY*쨫컶.e€쉯o댞Of3?뀻h?Ok/<???0s?%O?€?電$흿??ŊV???5?^쥷깻?/嶺JC챈?Z,뇛]???,?"y?4?擁j???e?H(?쥜€p,놕?c, 쎽R?깹xU?Qk?
    ㅚ(?D <%A ???`???P~搜Z臭?%?믪v冀?쐃?흢X?웗?杓凉?n揄~仙?승x?8?_柔?튺됾궾B`?
    2뎑淞?맭쯲 !쩅審퓞?귬?j{?_\졤諛jre? 甫?W勵갱?,??댒?糧0쓡냮A1(?X,2?끕?泣?d~fS絢?/!몰핀\악뿇]U$2롱?꾳<?*N?畵?쩆 항%a?릤}꾭o?족v ^??뺙n]g?}?T€?r 討=fX?뽎`n???€€쯥?p굸|€e3? ??걋?윸~w飽盈y&Ga|?햛}??}?싡€+??8굍a?-0멲?mㅨ`??0eTK<???.e킓`?쬕뻺#4?0묂???핇'졡]숩뗑К=?펵?校뒝?훳Q*??z註Ii녋A?췔"?낚?L?甕??뗔?괎캹꾡맆 핬즤,훌A?)?`죉B?뾍!켰 ?꽭켗淑책T 倉턬@>꾝쩿??2hb$?덬嶠?몥€-_漕2뻪?삑~곒e릅nB-v급總
    "?@?\鈑(??`?풊?풫뮏*P?6앇wS淀晴#?뼉콲?d??/?뷰렃%株쏧햼O돻猿 =In???鶴폠 害宦?C
    ?? 잙??(F1e ?H5?{H???楯)&?力?헲嶋3B롱?U??쿾L] h篇첧튝빺좟?!m? o)*?AA뙚!z181%,3s車?茱宴? D_r?붺
    n셀??쏰?詭킞싋gi?좹쎮???v,Y킾쐳??Ka쉡 ?B럡LV엌AY?~Yu#/q??(?쳠!.-??Z?(桎??댏鎌헇梵춾V?
    쳥硫?긅뼠?)뤄좎~1Q╅폹?稚c휠r淪??L4=짐? ?~?
    v&픵\?r믮勞???u?^(?誌댧紗숣럻}쬬?? d?뭫1Z??#Z?G0랳|곫?\??8??쏋z??P?뿤?{2똞路았?NS&?O好몎???
    쒟???9fW?5<渡菜1봊<+혙S?dAs隘)-EP?撒잂욁?jzP4:-??h쨅` ? \?엂8v`(Pi랦????畜0Kf?둷??Y 뙌썥i4)w ?址몟慙(퐱C?)ヶ?|?6暄?띤n???퓢'뙶웵욃?IN?,?먬焄m섀?긮э몸~?'e?쒁鼎>?~?高?뇸?딜켞퉉??&彩??레?턦諪?O菲뽳??"?把環轅??쭋p?版퓢G晛陸잪i$b聆T€o?胚兢鋏풾㎧?퀖㎹?랗읺??k貝??[??삘?턱?zw8?}텩먜]㎑甛???<?팉럌v퓟N-懊?렘n/N숇xG뇻T|96?c븦?q光8c뺛W밥qq빍@;?f킍nH舟\붬흐?<a樣Y??E
    ?
    랪?$삻몞Y7?8싩荀3%V?(3?-R?)'€?힚H??*Qel&1?U2'멊€1 *E面 ?T?뗙뽟?洵"?o?찼펆붳~v,r返-rhEB"d쐦?P?0??8줌??섫0
    'S?????此??`펈認基깊?칳??핍Z>9??x??E좭쟿교,O짫??磎rㅾ쟨竝??욈?얒)??㉬/|뺽u뼙?点毖? "(녠c뛂B??X?뿝Y욀뉟럂晃?믎"?炳??/吹9??椀H?T쨽2?$#?쯎W 堰꽾???h撰Hz-2ee???$(??펔갺FQ3J&볿` 壘/쎈沓뺙??ぇ物(|꽦긞m킞%????O? ?(짍쾃?A*??5?뽐?緬qo嶺홶
    쉘?{??V?柚?꽬 q?X슭U?F넓?堡띱`dピ? &?쒼냮0?k ?? 拿
    T于?gV@?잢裡8?t쎥qB꾸뷸?쭘?
    ]W?쮠톣럴Mn8?럙塑횠??V ㅅ恐눕럫管"??t놭?F$x뜽`?? t?R풩톀) 磁??W?N??}릗?퇝M/"?i릎故?Y돱E> ???斂<
    佚兒D?r?b묭L난???
    ?뛽BP젦g硫%50g땕RN
    Y`뵩?h?꿛儺瓮쎤?)^^?⑤$@L?`>? 돈r퐲?震졺 ??F?쟿?炡5?뤓??藏~N$셠jJj瑋윝???섥쐌P?앯??F坮vC쀷,消mp쩣줻55?쟢*윱^헎hj&?淡2??0???0K鼎m}(UCX?뙹??y5륈??폾?4e겵Y켩腑-볣잭??팙?₄2쐟?百:笠稻i렘bヲ司-@뻬妻퀦? E똶S7??a僧?k;쟆묾嬌 MB짷[즷촊화혌뗏GkJ?i뵭 흓2?M}T??tX>∞2??_뒻먣h 렯??E돣u됪礎??낏현KT[?㎫?*z갽?>
    a?Jk擊O?痕x? ?솃?3vdoy걶청?[{럨6쯅o|?챰雜ET>j닚?팏孰쭠릊??쓇H짙n8jjp?Ph?W鼻裕쮣??cf珥{?I+ItmX삄떊쒯??`
    ?y2?최N?PLI拉l暮Y峀뗱????y춡X?큞o5?췳넰김OV$r곺カ鑄>? :?c띫쩻3?&f껢밳?귡f)L쏰춋0b{튘
    9]?윳렝埇˘??k N信츆)? 쵄닟hN꾁┃춆쨮T??뷊 ?? ?뺽Yt쥈!?]K?쭼*K?Tj뮉?? ?혮뙦ㅳㄵ??j?%?
    珀 り? €iO1?,톝0/쳸[dW?<?툵??+?쮊治%?`:u居+V-넅%Z??H£4iu훉ac /?굌??챴?큻랭??푊?K駱?=
    陪깚?!롇뵝?닺t-膿\?-띉뒢욀7*콘?\?윗`-혍F?쮻집5x譎뽾2?옦?~ ?qNn휻?ⅶ?逼\i 락??핫_퉷표T?큤?뺁_pe琅勃핻D궐쳋?僕aU~촣€6?GU뚱@p岷zPd?S唎?b1甘?촿H?'6 玉갵촖iby찚uW퀘Y쟉蔓率뙲??U?u騷?*t맋綽溺n?晧떄E?uА?
    붽긳ヶ %*졨?:?=?<뚩?H먚??읕?f?-d?뗗?푏?P來뽮渣罹?M딤??+?€4???돸??@텒JE?株承8첬?漑?]s????e(d껢u
    =촢?뜞뷜U털|5넻빑%|瀜?)粥S?5냂믑Pt^뛻쾌\??。Wc@a?`?꾿#Px幽P쵑P8_G돸룖?쳽p?툍?*혔:긻냷?(퐽0빮r?얪?2K_l#@n?죷寤쾳??mTi챞K쀮캯Vq?벵?N?€꽜Y.m????쮶vUcX??則j?U??묜? o疝괟%헓쁔qEU뜮X딿?렻?콓얀?-R_?U7肖!鞠뢹?7?J러턧q앐\헮?뒳FR?F???Q?됀閘? :듨:?끕)∥쀨 o>?+n???K펑듍h?c툶iU괰? ?\邃I?Z?YyL闔??뫇5쀮휢殃?㎙??+Aブ|냍Z?>?쳆9?GW~攬F륩HWw>?퓟뒒루냖?? G;況쀝k&?
    ??炎t?Sホ26H[ :?P???斥?酩招엠쯂??퓍룸6燐퓶┳??폿풵쥗?푝雜?섯]fW4?6h?껸T뻎C?My?xY?;x덨?OShbL€a좒??LWI5????짲?S춺륑뵕齒植?#? ≒췮?ng쟿碣粉\.?災R꼺1?긥d?祺L???"Q?加??듙^hb?뀝暾站뽧?j?)랦?Z狩\O씋%?윦?%2需€웩b콠XLHj?^b늴增? 쀦?€┿y稠?刈뗍X&?'
    |??몁*c뉒??q?nk?풠?귨?o렘쐬床?쇄?뤠u?搗??w??VH#욕 械?CCD?괂예뫩療?z 힝C堂F??? MB약 x