배열을 사용해서 키 값과 암호화할 단어를 입력해서 암호화를 하고 복호화를 해주는 프로그램
문자에 해당되는 아스키코드에 키 값을 더해서 암호화하고 암호화된 아스키코드에 키 값을 빼서 복호화하는 매우 간단한 프로그램이다. 숫자를 입력받고 비교해서 큰 순서대로 정렬해서 출력하는 프로그램
입력되는 숫자가 5개라서 모두 비교해서 완벽히 정렬하기 위해서는 for문을 중첩으로 각각 4번 반복해야한다. 절대값 크기를 비교해서 정렬하는 프로그램 위에서 약간 바꾸면 된다.
C언어로 만든 간단한 RSA. 안녕하세요. 오늘은 공개키 암호 알고리즘 중 하나인 RSA 코드입니다. 그냥 공부하면서 대충 만든 겁니다.
코드코드는 다음과 같습니다.
알고리즘.두 소수 p와 q를 선택한다. (위의 코드에서는 17과 11을 선택.) φ(N)=(p-1)(q-1)=160 160보다 작으면서 φ(N)과 서로소인 수 e를 선택한다. (위의 코드에서는 7.) d<160이면서 demodφ(N)=1인 수 d를 결정한다. (위의 코드에서는 d*7mod160=1이므로 23이 d가 된다.) 공개키={7,187}, 개인키={23,187}이 된다. 실행결과.그래서 위의 코드를 실행해보면 이런 결과가 나온다. ROT13이라는 문자암호화 알고리즘을 만드려면 우선 ROT13이 뭔지 알아야겠죠? ROT13(Rotate by 13)은 단순한 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 흔히 ROT-13 혹은 rot13이라고도 쓴다. 예를 들어서 'I LOVE YOU'를 ROT13으로 암호화하면 'V YBIR LBH'가 된다. 이 방법은 유즈넷을 비롯한 온라인 게시판에서 퍼즐의 정답이나 스포일러 등과 같이 미리 보기를 원치 않는 내용을 암호화하는 데 자주 사용된다. https://ko.wikipedia.org/wiki/ROT13 그림을 보니까 쉽게 이해가 되죠? 입력한 알파벳에서 a부터 m까지는 13을 더하고, n부터 z까지는 13을 빼면 됩니다. 문자입력은 getchar를 사용해서 한글자씩 입력받고 putchar로 한글자씩 출력합니다. 그리고 입력한 문자가 대문자인지 소문자인지 판단하려면 if문이 필요합니다. if ((c >= 'A' && c <= 'Z')) //대문자 else if ((c >= 'a') && c <= 'z') //소문자 이렇게하면 대문자와 소문자를 거를수 있죠
|