| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 시스템해킹
- picoCTF2018
- CTF
- grep
- 시스템
- Smashing The Stack For Fun And Profit
- dreamhack
- WEB
- 스택
- Hxd
- 리버싱
- reversing
- 해킹 공부
- KOISTUDY
- 정답
- 리눅스
- Protostar
- cryptography
- Aleph One
- write up
- 버퍼오버플로우
- picoCTF
- 해설
- general skills
- #picoCTF2018
- forensics
- #hacking
- writeup
- 번역
- 카이사르
Archives
- Today
- Total
Security || AI
[암호학]카이사르(시저)암호 해독 C언어 본문
이번 글에서는 CTF문제에 자주 출제되는 암호 기법 중 하나인 카이사르(시저)암호에 대해 다루어 볼 것이다..
카이사르 암호는 치환 암호의 일종으로 예를 들어 A -> C, B -> D 이런식으로 암호화를 하는 암호 기법이다.
#include <stdio.h>
#include <string.h>
#include <windows.h>
main()
{
char s[10000];
gets(s);
for(int n=1; n<=26; n++)
{
for(int i=0; i<strlen(s); i++)
{
if(i<strlen(s)){
if(isalpha(s[i]))
{
if(s[i]==90)
s[i]=65;
else if(s[i]==122)
s[i]=97;
else
s[i]++;
}
}
}
printf("%d번째: %s\n",n,s);
}
system("pause");
}문자열을 받으면 알파벳인 경우에만 문자의 아스키코드를 더해 모든 경우의 대칭 암호를 보여주는 소스코드이다.
소문자에서는 z의 아스키코드인 122, 대문자에서는 Z의 아스키코드인 90일 때 각각 a, A로 바꾸어주는 알고리즘을 가진다.
실행 예시, 결과
5번째에 This is Caesar라는 해독 결과를 볼 수 있다.
반응형