Python
fastapi - bcrypt 오류
ZZJJing
2025. 2. 27. 17:24
반응형
bcrypt 를 붙이려고했더니 이런 에러가 났다.
bcrypt.py:622 - (trapped) error reading bcrypt version
AttributeError: module 'bcrypt' has no attribute '__about__'
bcrypt.py:625 - detected 'bcrypt' backend, version '<unknown>'
bcrypt.py:406 - 'bcrypt' backend lacks $2$ support, enabling workaround
찾아보니 bcrypt 버전을 낮추래서 낮추기도 하고 다시 올리기도하고
pip 버전도 올리고 별 쑈를 했는데도 안됨.
이래저래 찾은 방법은
대신 hashlib 을 사용하면 된다.
`hashlib` 모듈은 파이썬 표준 라이브러리의 일부로, 다양한 해시 알고리즘을 지원하며 안정적으로 사용할 수 있다고한다. `bcrypt` 모듈은 특정 버전에서 설치 오류가 발생할 수 있지만, `hashlib`은 이러한 문제가 없음.
import hashlib
def sha256_encrypt(text):
# 문자열을 바이트로 인코딩
encoded_text = text.encode()
# SHA-256 해시 객체 생성
sha256_hash = hashlib.sha256()
# 해시 객체에 데이터 업데이트
sha256_hash.update(encoded_text)
# 해시 값 얻기 (16진수 문자열로 변환)
encrypted_text = sha256_hash.hexdigest()
return encrypted_text
# 예제 사용
text = "Hello, World!"
encrypted_text = sha256_encrypt(text)
print(f"Original Text: {text}")
print(f"SHA-256 Encrypted Text: {encrypted_text}")
### 주요 단계:
1. **문자열 인코딩**: 문자열을 바이트로 인코딩 (`text.encode()`)
2. **SHA-256 해시 객체 생성**: `hashlib.sha256()`을 사용하여 SHA-256 해시 객체를 생성
3. **데이터 업데이트**: `update()` 메서드를 사용하여 해시 객체에 데이터를 추가
4. **해시 값 얻기**: `hexdigest()` 메서드를 사용하여 해시 값을 16진수 문자열로 변환
[참고자료]
https://m.blog.naver.com/wsi5555/221234136307 : bcrypt 설치 오류 - 인프런 | 커뮤니티 질문&답변
https://hangbok-archive.com/development/python/%ED%8C%8C%EC%9D%B4%EC%8D%AC-hashlib/) :파이썬 hashlib, secret : 파이썬 암호 해싱 라이브러리 - H-A
성공적으로 가져옴!
728x90
반응형