일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- The Loard of BOF
- BOJ
- 백준
- HTML
- WarGame
- Javascript
- SWEA
- C언어
- 파이썬
- CSS
- 드림핵
- hackerrank
- 자료구조 복습
- c
- siss
- 숙명여자대학교 정보보안 동아리
- 기계학습
- 풀이
- lob
- c++
- PHP 웹페이지 만들기
- BOJ Python
- Python
- XSS Game
- 숙명여자대학교 정보보안동아리
- 머신러닝
- 생활코딩
- 웹페이지 만들기
- hackctf
- Sookmyung Information Security Study
- Today
- Total
목록분류 전체보기 (346)
혜랑's STORY
# 문제 # 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int d[41] = { 0, 1 }; for (int i = 2; i > t; for (int i = 0; i > n; if (n == 0) printf("1 0\n"); else printf("%d %d\n", d[n-1], d[n]); } return 0; } 제한시간이 매우 짧기 때문에 재귀함수를 사용하여 문제를 해결하면 시..
RSA 암호란? 두 개의 키를 사용한다. (공개키, 암호키) 공개키 알고리즘은 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한 사람만이 존재한다. (비대칭키 알고리즘인 이유) RSA는 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있다. 키의 생성 암호화 복호화 문제를 해결하기 위해 values를 눌러 다운받았다. Decrypt my super sick RSA: c: 861270243527190895777142537838333832920579264010533029282104230006461420086153423 n: 13110975325625959918779806198497246067841644301..
message를 눌러보니 다음과 같은 문장이 담긴 파일을 얻을 수 있었다. picoCTF{gvswwmrkxlivyfmgsrhnrisegl} 문제 이름으로 카이사르 암호를 사용한다는 것은 알지만 key값을 몰라 얼마나 shift 해야하는지 모르기 때문에 for문을 통해 가능한 경우의 수를 모두 출력하였다. ciphertext = "gvswwmrkxlivyfmgsrhnrisegl" for key in range(0,26): c = list(ciphertext) for i in range(len(c)): c[i] = chr((ord(c[i]) - ord('a') + key) % 26 + ord('a')) plain = ''.join(c) print(plain) 출력 결과를 보고 가장 flag같은 문장을 골라 ..
앞서 해결했던 Mod 26과 같은 ROT13 문제이다. ciphertext = "cvpbPGS{abg_gbb_onq_bs_n_ceboyrz}" c = list(ciphertext) for i in range(len(c)): if c[i] >= 'A' and c[i] = 'a' and c[i]
number를 클릭했더니 사진 한장을 다운받을 수 있었다. 힌트를 보니 flag의 형식이 PICOCTF{...} 라고 하니 다음 숫자에 위치한 알파벳을 대입하면 될 것이라고 생각하였다. c = [] while True: key = int(input()) if key == -1: break c.append(chr(ord('A') + key - 1)) plain = ''.join(c) print(plain) 앞에 PICOCTF와 { } 를 제외한 안에 들어가는 숫자들을 입력해 주었다. 출력되는 문장을 삽입하여 flag를 완성했다. 끝~
# 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. # 풀이 ciphertext = "cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_hyLicInt}" c = list(ciphertext) for i in range(len(c)): if c[i] >= 'A' and c[i] = 'a' and c[i]
# 문제 1부터 50까지의 봉투 중 토끼가 들어있는 봉투를 알려준다. 봉투를 열어볼 땐 이분법을 사용한다. 따라서 맨 처음 열어보는 봉투는 항상 25가 된다. 이 때 열어보는 봉투를 모두 출력하라. # 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int low, high, mid; int key; cin >> key; while (key != 0) { low = 1, high = 50; while (low
# 문제 # 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int search(int* list, int key, int size) { int low = 0, high = size - 1, mid; while (low > t; for (int tc = 0; tc > n; int* list1 = new int[n]; for (int i = 0; i > list1[i]; sort(list1, list1 + n); cin >> m; for (int i = 0; i > key..