# _*_ coding : UTF-8 _*_
# @Time : 2025/01/18 02:34
# @UpdateTime : 2025/01/18 02:34
# @Author : sonder
# @File : password.py
# @Software : PyCharm
# @Comment : 本程序
import hashlib

from config.env import JwtConfig


class Password:
    """
    密码工具类
    """

    @classmethod
    async def verify_password(cls, plain_password, hashed_password):
        """
        工具方法：校验当前输入的密码与数据库存储的密码是否一致

        :param plain_password: 当前输入的密码
        :param hashed_password: 数据库存储的密码
        :return: 校验结果
        """
        salt = JwtConfig.jwt_salt
        # 将盐值和密码拼接在一起
        password_with_salt = (salt + plain_password).encode('utf-8')
        # 使用SHA256算法对拼接后的密码进行加密
        password_hashed = hashlib.sha256(password_with_salt).hexdigest()
        return password_hashed == hashed_password

    @classmethod
    async def get_password_hash(cls, input_password: str):
        """
        工具方法：对当前输入的密码进行加密

        :param input_password: 输入的密码
        :return: 加密成功的密码
        """
        salt = JwtConfig.jwt_salt
        # 将盐值和密码拼接在一起
        password_with_salt = (salt + input_password).encode('utf-8')
        # 使用SHA256算法对拼接后的密码进行加密
        return hashlib.sha256(password_with_salt).hexdigest()
