Hacking/Cryptography

[Cryptography] C언어 caeser 암호

MitNy 2017. 1. 2. 18:12

평문 또는 암호문을 입력 받고

키 값을 넣으면 암호화 or 복호화 할 수 있다.




#include <stdio.h>

#include <string.h>


int main(void) {

        char value[100] ={0,};

        int key, choice, i;


        printf("평문 또는 암호문 입력 : "); fgets(value, 100, stdin);

        printf("Key 값 : "); scanf("%d" ,&key);

        printf("1. 암호화 2. 복호화 선택 :  "); scanf("%d" ,&choice);


        if( choice == 2 ) key =- key;

        for( i=0; i<strlen(value); i++ ) {

                if( value[i]>='A' && value[i]<='Z' ) {

                        value[i] -= 'A';

                        if( value[i] + key < 0 ) {

                                value[i] += 26;

                        }


                value[i] = (value[i] + key ) % 26;

                value[i] += 'A';

        }

        if( value[i] >= 'a' && value[i] <='z') {

                value[i] -= 'a';

                if( value[i] + key < 0 ) {

                        value[i] += 26;

                }

                value[i] = (value[i] + key) % 26;

                value[i] += 'a';

                }

        }

        printf("%s\n" , value);

        return 0;

}




<실행 결과>


1. 암호화





2. 복호화