시저암호 구현시 문제점 질문드립니다.
온새미로
질문 제목 : 시저암호 구현시 문제점키를 3 이렇게 주면 정상적으로 복호화가 되는데 키 값을 25로 주니까 복호화가 엉뚱하게 되네요질문 내용 :
아래와같이 코딩을 했는데요
키값으로 3을 입력시에는 암호화 복호화에 이상이 없는데 키값을 25로 주니까
복호화시 엉뚱한값이 나옵니다.. 왜그럴까요????
#include stdio.h
#include string.h
main(void)
{
char mun[100];
int i,k,key,select; //select 는 암호화,복호화 선택을 하기위한 변수,key를 입력하기위한 key변수,k는 반복문인 for을 사용시 필요하기에 선언하였음
printf(암호화 시킬 영어문장을 입력하세요\n);
scanf(%s,mun);
i = strlen(mun);
printf(암호화는 1번 입력, 복호화를 2번을 입력하세요.\n);
scanf(%d,&select);
printf(키 값을 입력하세요\n);
scanf(%d,&key);
if(select == 1)
{
for(k=0;ki;k++)
{
if(mun[k]64 && mun[k]91)
{
mun[k]=mun[k]-65;
mun[k]=mun[k]+key;
mun[k]=mun[k]%26;
mun[k]=mun[k]+65;
}
else if(mun[k]96 && mun[k]123)
{
mun[k]=mun[k]-97;
mun[k]=mun[k]+key;
mun[k]=mun[k]%26;
mun[k]=mun[k]+97;
}
}
printf(%s\n,mun);
}
else if(select == 2)
{
for(k=0;ki;k++)
{
if(mun[k]64 && mun[k]91)
{
mun[k]=mun[k]-65;
mun[k]=mun[k]+key;
mun[k]=mun[k]%26;
mun[k]=mun[k]+65;
}
else if(mun[k]96 && mun[k]123)
{
mun[k]=mun[k]-97;
mun[k]-=key;
mun[k]%=26;
mun[k]+=97;
}
}
printf(%s\n,mun);
}
else
printf(잘못 선택 하셨습니다);
return 0;
}