파일 목록
- 1-Time1-.c
- 1-로또 프로그램 만들기.c
- 1-성적 평균 계산.c
- 1-소스.c
- 1-예제1.c
- 10-1.c
- 10-2.c
- 10-3.c
- 10-4.c
- 10-5.c
- 10-6.c
- 11-1.c
- 11-2.c
- 11-3.c
- 11-4.c
- 11-5.c
- 11-6.c
- 11-make.c
- 12-1-1.c
- 12-1-2.c
- 12-1-3.c
- 12-1-4.c
- 12-2-1.c
- 12-2-2.cpp
- 12-2-3.c
- 12-2-4.c
- 12-2-5.c
- 13-1.c
- 13-2.c
- 13-3.c
- 13-4.c
- 13-5.c
- 13-6.c
- 13-make.c
- 14-1-main.c
- 14-1-power.c
- 14-1-power.h
- 14-2-rect.c
- 14-2-rect.h
- 14-2-rect_main.c
- 14-2-소스.c
- 14-2-소스1.c
- 14-main.c
- 14-reserv.c
- 14-reserv.h
- 2-DICE.c
- 2-minimum.c
- 3-TIC_TAC_TOE.c
- 4-1.c
- 4-2.c
- 4-3.c
- 4-Point.c
- 4-주소.c
- 5-1.cpp
- 5-2.c
- 5-3.c
- 5-4.c
- 5-5.c
- 5-6.c
- 5-7.c
- 6-1.c
- 6-2.c
- 6-3.c
- 6-4.c
- 6-5.c
- 6-6.c
- 6-7.c
- 6-8.c
- 6-make.c
- 7-1.c
- 7-10.c
- 7-11.c
- 7-12.c
- 7-2.c
- 7-3.c
- 7-4.c
- 7-5.c
- 7-6.c
- 7-7.c
- 7-8.c
- 7-9.c
- 7-make.c
- 8.c
- 9.c
- sil1.c
- sil2.c
- sil3.c
- Title.png
- 성적받아오기).c
/*****************************************************************
* 암호화 복호화 프로그램
********************************************************************/
#define _CRT_SECURE_NO_WARNINGS // scanf오류 제거를 위한 코드
#include<stdio.h> // 표준 입출력장치 사용을 위한 헤더파일 로드
encrypt(char cipher[], int shift); // 암호화함수
unencrypt(char cipher[], int shift); // 복호화함수
int main() // 메인함수
{
char cipher[50] = { 0 }; // 문자열을 받을 배열 생성
int shift = 3; // 문자열을 옮길 수 생성
int cho_num = 0; // 암호화 복호화 설정 코드 변수 초기화
printf("문자열을 암호화하고싶으면 1번,\n 복호화 하고 싶으면 2번을 입력하고 문자열을 입력하세요.\n : ");
scanf("%d", &cho_num); // 입력한 숫자 받기
if (cho_num == 1) // 1번 선택시 암호화
{
gets_s(cipher, 50); // 1번 선택 뒤에 문자를 배열에 입력
encrypt(cipher, shift); // 암호화함수 불러오기
}
else if (cho_num == 2) // 2번 선택시 복호화
{
gets_s(cipher, 50); // 2번 선택 뒤에 문자를 배열에 입력
unencrypt(cipher, shift); // 복호화 함수 불러오기
}
else // 이상한 문자를 처음에 입력한 경우
{
printf("잘못된 문자를 입력하셨습니다. 프로그램을 종료합니다.");
}
return 0; // 반환 : 없음
}
encrypt (char cipher[], int shift) // 암호화 함수
{
int i = 0; // 변수 초기화
while (cipher[i] != '\0') // 배열의 종료코드가 아닌경우
{
if (cipher[i] >= 'A' && cipher[i] <= 'z'); // 받는 문자가 영어인경우
{
cipher[i] += shift; // 코드 숫자 3증가
if (cipher[i] > 'z') // 코드 숫자가 z를 넘는경우
cipher[i] -= 26; // 초기 숫자부터 입력되도록 설정
}
i++; // 다음 배열 순서로 이동
}
printf("암호화된 문자열: %s \n", cipher); // 암호화된 문자열 표시
}
unencrypt(char cipher[], int shift) // 복호화 함수
{
int i = 0; // 변수 초기화
while (cipher[i] != '\0') // 배열의 종료코드가 아닌경우
{
if (cipher[i] >= 'A' && cipher[i] <= 'z'); // 받는 문자가 영어인경우
{
cipher[i] -= shift; // 코드 숫자 3감소
if (cipher[i] >= 'x' - 26 && cipher[i] <= 'z'-26) // 암호화된 원본이 z를 넘겨 초기 숫자부터 입력되도록 설정된 경우
cipher[i] += 26; // 위의 경우 복호화 추가계산
}
i++; // 다음 배열 순서로 이동
}
printf("복호화된 문자열: %s \n", cipher); // 복호화된 문자열 표시
}