Python&Framework 8

비밀번호 암호화에 passlib와 hashlib 비교 (python)

Python에서 비밀번호 암호화에 passlib와 hashlib 중 무엇이 더 나은지는 사용 목적과 요구사항에 따라 다르다. 두 라이브러리는 서로 다른 목적으로 설계되었기 때문에, 상황에 맞는 선택이 중요합니다.아래에서 두 라이브러리의 특징과 비밀번호 암호화에 대한 적합성을 비교해 보겠습니다.1. hashlib설명: Python 표준 라이브러리로, MD5, SHA-1, SHA-256 등 다양한 해시 알고리즘을 제공합니다.특징:단방향 해시 함수를 구현하며, 주로 데이터 무결성 확인이나 간단한 해싱에 사용됩니다.솔트(salt)나 작업 부하(work factor)를 자체적으로 지원하지 않으므로, 비밀번호 저장용으로 사용하려면 직접 구현해야 합니다.빠르고 가볍지만, 비밀번호 암호화에는 최적화되어 있지 않습니다...

Python&Framework 2025.03.06

fastapi - Event loop is closed 에러

fastapi에서 mongoDB를 연결해서 토큰을 생성해오는 작업중. 연결했다고 좋아하고 있었는데 두번째는 무조건 에러가 발생했다. 이벤트 루프가 닫혔다는 것.  File "C:\Users\kimaa\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 556, in _check_closed raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closed  그래서 몽고db가 중간에 끊겼나 싶었는데 그런것도 아니었다. 엄청난 삽질끝에 내가 controller에서 사용하던  인증정보를 불러오는 이 문구가 문제였다. auth_data = asyncio.r..

Python&Framework 2025.03.04

fastapi - bcrypt 오류

bcrypt 를 붙이려고했더니 이런 에러가 났다.  bcrypt.py:622 - (trapped) error reading bcrypt versionAttributeError: module 'bcrypt' has no attribute '__about__'bcrypt.py:625 - detected 'bcrypt' backend, version ''bcrypt.py:406 - 'bcrypt' backend lacks $2$ support, enabling workaround 찾아보니 bcrypt  버전을 낮추래서 낮추기도 하고 다시 올리기도하고 pip 버전도 올리고 별 쑈를 했는데도 안됨.  이래저래 찾은 방법은 대신 hashlib 을 사용하면 된다.  `hashlib` 모듈은 파이썬 표준 라이브러리의 ..

Python&Framework 2025.02.27

인텔리제이에서 파이썬 실행 환경 구성하기

spring같은 프레임워크만 만지다가 파이썬을 하려니깐 너무 번거로웠다. vscode에서 터미널에서 막 main.py 쳐야하고.. IntelliJ 돈내고 쓰는데 쉽게 써야하지.. 그래서 확인해봄. IntelliJ에서 Python 실행 구성을 설정하는 방법~! 1. Python 플러그인 설치IntelliJ에서 Python 플러그인이 설치되어 있는지 확인설치되어 있지 않다면, File > Settings > Plugins로 이동하여 Python 플러그인을 검색하고 설치 2. Python SDK 설정File > Project Structure로 이동Project 메뉴에서 Project SDK를 선택하고, New > Python SDK를 선택로컬 Python 인터프리터를 선택하고, Python 설치 경로를 지정..

Python&Framework 2025.02.25

유튜브 mp3음원 추출

요즘 mp3음원 추출해서 듣는 사람은 없긴하지만 그래도 가끔 필요할 때가 있어서 사용하려면음원추출 사이트가 너무 광고도 많고 안되는 것도 많아서 파이썬으로 직접 정리함. 요즘은 AI로 코드도 엄청 쉽게 짤 수 있음 UI는 없지만 다음에 또 까먹을까봐 기록해둔다. -  파이썬 설치-  pip install 로 패키지 임포트 import osimport yt_dlp# 다운로드할 디렉토리 설정DOWNLOAD_FOLDER = "downloads"os.makedirs(DOWNLOAD_FOLDER, exist_ok=True) # 폴더가 없으면 생성def download_youtube_audio(url): """YouTube 영상을 MP3로 다운로드하는 함수""" ydl_opts = { 'f..

Python&Framework 2025.02.22