17 lines
609 B
Python
17 lines
609 B
Python
import bcrypt
|
|
from src.application.contracts import IHashService, ILogger
|
|
|
|
|
|
class HashService(IHashService):
|
|
|
|
def __init__(self, logger: ILogger):
|
|
self._logger = logger
|
|
|
|
async def hash(self, value: str) -> str:
|
|
hashed_value = bcrypt.hashpw(value.encode(), bcrypt.gensalt())
|
|
self._logger.info(f'Hash value {hashed_value.decode()}')
|
|
return hashed_value.decode()
|
|
|
|
async def verify(self, hashed_value: str, plain_value: str) -> bool:
|
|
self._logger.info(f'Hash value {hashed_value[:10]}')
|
|
return bcrypt.checkpw(plain_value.encode(), hashed_value.encode()) |