일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사이버보안
- root me
- write up
- 웹해킹 기초
- WebHacking
- 테크트렌드
- 정보보안
- lord of sqlinjection
- Over The Wire
- XSS GAME
- 프로그래밍
- sql injection bypass
- SQL Injection
- system hacking
- 인공지능
- hackthissite
- pythonprogramming
- burp suite
- 개발자
- web hacking
- Bandit
- overthewire
- geminipro
- 웹개발
- web-server
- CTF
- webhacking.kr
- 웹해킹
- 코딩
- Wargame
- Today
- Total
목록프로그래밍/python (6)
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지
def makeDisk(k): dec_disk = {} for i in range(26): # 범위를 26으로 수정 alp = (i + k) % 26 + 65 dec_disk[chr(alp)] = chr(i + 65) return dec_diskdef caesar(msg, key): ret = '' msg = msg.upper() disk = makeDisk(key) for c in msg: if c in disk: ret += disk[c] else: ret += c return retdef attack(msg): for key in range(1, 26): ..

🔧 Streamlit 챗봇 디버깅: API 응답 문제 해결 완벽 가이드 안녕하세요, 개발자 여러분! 오늘은 Streamlit 챗봇 개발 중 자주 발생하는 API 응답 문제를 함께 해결해보려고 해요. 특히 Google의 Generative AI를 활용한 챗봇에서 발생하는 응답 누락 현상을 중점적으로 다뤄볼게요! 🤖 📌 문제 상황 분석 현재 챗봇이 사용자 입력은 받지만 응답을 출력하지 않는 상황이에요. 이런 문제가 발생하는 주요 원인을 살펴볼까요? 🔍 주요 원인 - 클라이언트 초기화 누락 - 잘못된 모델명 사용 - 시스템 메시지 처리 미흡 - 예외 처리 부재 💡 해결 방안 1. 클라이언트 초기화 개선 ```python# 이렇게 하면 안 돼요 ❌if "client" in st.session_state..

클래스(Class): 반복되는 불필요한 소스코드를 최소화하면서 객체 지향 프로그래밍에서 데이터와 관련된 메서드(함수)를 하나의 단위로 묶어 관리할 수 있게 하는 것입니다. 클래스는 객체의 속성(attribute)과 행동(behavior)을 정의합니다. ex) 인스턴스: 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수입니다. 클래스의 맴버: 클래스 내부에 포함되는 변수입니다. 클래스의 함수: 클래스 내부에 포함되는 함수, 메서드라고 부릅니다. 상속: 다른 클래스의 맴버 변수와 메드를 물려받아 사용하는 기법입니다. 상속을 통해 코드 재사용이 증가하고 코드의 유지 보수가 편리해집니다. 기본 클래스(부모 클래스 또는 슈퍼 클래스)를 상속받아 새로운 클래스(자식 클래스 또는 서브 클래스)를 정의..
number = int(input()) 정수값을 입력 받을 것이다. list = [] 리스트를 만드는 방법 split_information = split_information.split() '.split()' 메서드는 파이썬 문자열을 지정한 구분자를 기준으로 나누는 함수입니다. 문자열을 구분자를 기준으로 분리하여 리스트로 반환합니다. 기본적으로는 공백(스페이스, 탭, 개행)을 구분자로 사용합니다. people.append({"이름" : name, "나이" : age}) people: 리스트 변수, 딕셔너리들을 저장할 리스트입니다. .append(): 리스트 메서드, 괄호 안에 전달된 값을 리스트에 추가합니다. {"이름": name, "나이" : age}: 딕셔너리 리터널. "이름" 키와 name 변수의 ..

여기 암호가 있습니다. 'YT LJY QTXY NX YT KNSI F BFD' 이 암호문 이외의 다른 정보는 아무것도 없습니다. 우리는 이 암호문의 형상을 보고 카이사르 암호문이라고 가정해 봅시다. 카이사르 암호는 평문을 구성하는 모든 문자를 일정 크기만큼 이동하여 만든 암호문이므로, 이 암호문을 해독하기 위해서는 모든 문자를 1부터 26까지 이동시켜 보면 됩니다. 이런 암호 공격 방법을 무차별 대입 공격 또는 전수 조사 공격이라고 하고 영어로는 Brute Force Attack이라고 합니다. 이 코드는 저번 글에서 만든 카이사르 암호 도구 소스코드를 약간 수정한 것입니다. 코드 1.5에서 추가된 부분은 attack(msg)입니다. attack(msg)는 우리가 습득한 암호문을 인자로 받아서 암호문의 각..

로마 황제 율리우스 카이사르(julius Caesar)는 그의 가족이나 친분이 두터운 신하에게 은밀한 내용을 보낼 때 암호문을 사용했다고 합니다. 오늘은 그래서 카이사르가 사용했던 카이사르 암호를 파이썬으로 구현해 보려고 합니다. 카이사르 암호는 원래의 문장에 있는 모든 알파벳 문자를 일정 크기만큼 이동시켜서 만듭니다. 원래 문장 바뀐 문장 A B B C C D ... ... Z A EX) I love python → J mpwf qzuipo 카이사르 암호의 공식 찾기 A B C D ... Z 0 2 3 4 25 표와 같이 알파벳 대문자 A~Z까지 26개의 문자를 부여해 봅니다. 이 표를 활용하여 원래 문장의 문자가 암호키에 따라 어떤 문자로 바뀌게 되는지 인덱스를 이용하여 규칙을 살펴볼 것입니다. 임호..