File manager - Edit - /usr/local/CyberCP/lib/python3.10/site-packages/django/contrib/auth/__pycache__/hashers.cpython-310.pyc
Back
o �h�r � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl m Z d dlmZ d dl mZ d dlmZmZmZmZmZ d dlmZmZ d dlmZ d d lmZ d ZdZdd � Zd;dd�Z d;dd�Z!ej"dd� �Z#ej"dd� �Z$ee�dd� �Z%d<dd�Z&dd� Z'd=dd �Z(d!d"� Z)G d#d$� d$�Z*G d%d&� d&e*�Z+G d'd(� d(e+�Z,G d)d*� d*e*�Z-G d+d,� d,e*�Z.G d-d.� d.e.�Z/G d/d0� d0e*�Z0G d1d2� d2e*�Z1G d3d4� d4e*�Z2G d5d6� d6e*�Z3G d7d8� d8e*�Z4G d9d:� d:e*�Z5dS )>� N)�settings)�ImproperlyConfigured)�setting_changed)�receiver)�RANDOM_STRING_CHARS�constant_time_compare�get_random_string�md5�pbkdf2)�RemovedInDjango50Warning�RemovedInDjango51Warning)� import_string)�gettext_noop�!�( c C s | du p | � t� S )zv Return True if this password wasn't generated by User.set_unusable_password(), i.e. make_password(None). N)� startswith�UNUSABLE_PASSWORD_PREFIX)�encoded� r �N/usr/local/CyberCP/lib/python3.10/site-packages/django/contrib/auth/hashers.py�is_password_usable s r �defaultc C s� | du pt |� }t|�}zt|�}W n ty d}Y nw |r)ttt�� dS |j|jk}|p5|�|�}|� | |�}|sH|sH|rH|� | |� |rR|rR|rR|| � |S )z� Return a boolean of whether the raw password matches the three part encoded digest. If setter is specified, it'll be called when you need to regenerate the password. NTF)r � get_hasher�identify_hasher� ValueError� make_passwordr �UNUSABLE_PASSWORD_SUFFIX_LENGTH� algorithm�must_update�verify�harden_runtime) �passwordr �setter� preferred�fake_runtime�hasher�hasher_changedr � is_correctr r r �check_password&