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
반응형