안녕하세요 오랫만에 포스팅을 하게 되었네요.ㅎㅎ
오늘은 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);
}
다운파일
소스는 오픈소스입니다.
소스파일을 원하시는 분은 덧글로 메일 주소를 남겨주시길 바랍니다. 확인하 는 즉시 소스파일을 메일로 전송해 드리도록 하겠습니다.
'프로그래밍 > C 언어' 카테고리의 다른 글
C언어 소켓프로그래밍 2편- Http request - response (0) | 2017.02.12 |
---|---|
C언어 소켓프로그래밍 1편- Http request - response (3) | 2017.01.10 |
c언어 파일 암호화 복호화 (52) | 2014.05.30 |
C 언어로 만든 암호화 복호화프로그램 (47) | 2014.01.03 |
댓글을 달아 주세요
정보보호학과 학생인데 소스코드로 공부하고싶어요
제 메일은 seojh1431@naver.com 입니다. 감사합니다.
메일 보내 드렸습니다.
감사합니다. 잘 받았습니다. vip로 들어가려면 신사과의블로그라고 쳐야하는데 어떻게 이렇게 설정을 하신거에요?
while (pas[i] != NULL)
{
pas[i] ^= ke;
i++;
}
이 while문이 pas배열과 ke를 xor 연산 시키면 신사과의 블로그가 된다는건데..어떻게 되는거죠?
파일중에 vippasswd.dat 라는 파일이 있을거에요. 그 파일을 텍스트 형태로 바꿔보시면 신사과의 블로그 를 2014 로 미리 xor 연산한 값이 들어있을거에요.
그것을 불러와 pas 배열에 넣고 ke와 xor 연산을 시키면 다시 신사과의 블로그 가 되게 만들었습니다 ㅎ
안녕하세요 정보보안전문가를 꿈으로 하는 학생인데 소스파일을 dohyun722@daum.net으로 보내주신다면 감사하게 이용하겠습니다.
늦었지만 보내드렸습니다. ㅎ 군때문에..ㅜ
안녕하세요 수고가 많으세요 보안쪽을 공부하고 싶어서요
소스 부탁드립니다
subongjj@hanmail.net 입니다
늦었지만 보내드렸습니다. ㅎ 군때문에..ㅜ
비밀댓글입니다
보내드렷습니다 ㅎ
컴공과 다니는 1학년 학생입니다.!
블로그를 보고 복호화 암호화 프로그램에 관심이 생겨서요!!
혹시 가능하시다면 lono1256@naver.com 으로 보내주시면 안됄까요??ㅜㅜ
복사 하셔서 가져가시면 되십니다. ㅎ
안녕하세요 C언어 를 배우고 있는 학생입니다.
소스를 혹시 받을수 있나요? 메일은 xodrn0724@naver.com 입니다.
보내드렸습니다 ㅎ
비밀댓글입니다
삭제해드렸습니다
비밀댓글입니다
안녕하세요 c언어를 공부하고있는 학생입니다.
괜찮으시다면 소스파일을 받을 수 있을까요..?
메일주소가어떻게되세요?
keron3@naver.com입니다.빠른답변진심으로 감사드립니다.ㅠㅠ
보내드렸습니다~~
정말감사합니다.ㅠㅠ학습에좋은참고자료로사용하겠습니다.감사합니다.
jhong2020@naver.com 보내주실 수 있나요ㅠㅠ
보내드렸습니다~~
비밀댓글입니다
보내드렸습니다
혹시 소스파일 좀 받을 수 있을까요??
sjh030504@gmail.com 입니다..
보내드렷습니다 ㅎ
혹시 소스파일좀 부탁드려도 되겠습니까?
jinw810@naver.com 입니다.
소스보내드렸습니다. 감사합니다
jsok1384@naver.com
여기로 보내주시면 감사드리겠습니다
메일로 보내드렸습니다
비밀댓글입니다
메일 보내드렸습니다 ~
비밀댓글입니다
보내드렸습니다
비밀댓글입니다
아래 파일이 암호화 된거 같기두 하고 풀고 싶은데 도대체 모르겠네요
알수 있을가요?
확장자명은 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⑭1T돤?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?욁?? ?偏퐶wg??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?撒잂욁?jzP4:-??h쨅` ? \?엂8v`(Pi랦????畜0Kf?둷??Y 뙌썥i4)w ?址몟慙(퐱C?)ヶ?|?6暄?띤n???퓢'뙶웵욃?IN?,?먬焄m섀?긮э몸~?'e?쒁鼎>?~?高?뇸?딜켞퉉??&彩??레?턦諪?O菲뽳??"?把環轅??쭋p?版퓢G晛陸잪i$b聆To?胚兢鋏풾㎧?퀖㎹?랗읺??k貝??[??삘?턱?zw8?}텩먜]㎑甛???<?팉럌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덨?OShbLa좒??LWI5????짲?S춺륑뵕齒植?#? ≒췮?ng쟿碣粉\.?災R꼺1?긥d?祺L???"Q?加??듙^hb?뀝暾站뽧?j?)랦?Z狩\O씋%?윦?%2需웩b콠XLHj?^b늴增? 쀦?┿y稠?刈뗍X&?'
|??몁*c뉒??q?nk?풠?귨?o렘쐬床?쇄?뤠u?搗??w??VH#욕械?CCD?괂예뫩療?z 힝C堂F??? MB약 x
비밀댓글입니다