관리-도구
편집 파일: crypt.cpython-39.opt-1.pyc
a �����DOg�����������������������@���s6��d�Z�ddlZzddlZW�n.�eyF���ejdkr:ed��ned��Y�n0�ddlZddlZ ddl mZ�ddl mZ�e je j�d�Ze��ZG�d d ��d ed d��Zd&dd�d d�Zd'dd�Zg�Zdd�dd�Zedddd��edddd��dD�](Zedde�ddee��dd�r���qq�edd d!d"��ed#dd$d%��[[dS�)(zEWrapper to the POSIX crypt library call and associated functionality.�����N�win32z,The crypt module is not supported on Windowsz;The required _crypt module was not built as part of CPython)�SystemRandom)� namedtuplez./c�������������������@���s���e�Zd�ZdZdd��ZdS�)�_MethodziClass representing a salt method per the Modular Crypt Format or the legacy 2-character crypt method.c�����������������C���s���d��|�j�S�)Nz<crypt.METHOD_{}>)�format�name)�self��r ����/usr/lib64/python3.9/crypt.py�__repr__���s����z_Method.__repr__N)�__name__� __module__�__qualname__�__doc__r���r ���r ���r ���r ���r������s���r���z name ident salt_chars total_size��roundsc����������������C���sB��|�du�rt�d�}�|dur4t|t�s4t|jj��d���|�js@d}nd|�j��d�}|�jr�|�jd�dkr�|du�rpd}n@t�|d��}|d|>�kr�td ��d |��kr�dks�n�td��||d �d�7�}n^|�jdv��r|du�r d|��kr�dks�n�td��|d|��d�7�}n|du�r t|���d���|d� dd��t |�j�D���7�}|S�)zsGenerate a salt for the specified method. If not specified, the strongest available method will be used. Nr���z+ object cannot be interpreted as an integer���$�2��������zrounds must be a power of 2��������z%rounds out of the range 2**4 to 2**31Z02d)�5�6i���i�ɚ;z+rounds out of the range 1000 to 999_999_999zrounds=z$ doesn't support the rounds argumentc�����������������s���s���|�]}t��t�V��qd�S�)N)�_sr�choice� _saltchars)�.0�charr ���r ���r ���� <genexpr>B��������zmksalt.<locals>.<genexpr>)�methods� isinstance�int� TypeError� __class__r����ident� bit_length� ValueError�join�rangeZ salt_chars)�methodr����sZ log_roundsr ���r ���r ����mksalt ���s2���� r.���c�����������������C���s&���|du�st�|t�rt|�}t�|�|�S�)aR��Return a string representing the one-way hash of a password, with a salt prepended. If ``salt`` is not specified or is ``None``, the strongest available method will be selected and a salt generated. Otherwise, ``salt`` may be one of the ``crypt.METHOD_*`` values, or a string as returned by ``crypt.mksalt()``. N)r#���r���r.����_crypt�crypt)Zword�saltr ���r ���r ���r0���F���s���� r0���c������������� ���G���s����t�|�g|�R���}|t��d|��<�t||d�}d�}ztd|�}W�n@�ty|�}�z(|jtjkrfW�Y�d�}~dS���W�Y�d�}~n d�}~0�0�|r�t|�|jkr�t � |��dS�dS�)NZMETHOD_r���r���FT)r����globalsr.���r0����OSError�errno�EINVAL�lenZ total_sizer"����append)r���r����argsr,���r1����result�er ���r ���r ����_add_methodX���s���� r;����SHA512r��������j����SHA256r����?���)�b�y�ar���ZBLOWFISHr��������;����MD5�1�����"���ZCRYPT����� ���)N)N)r����sys�_sysr/����ModuleNotFoundError�platform�ImportErrorr4����string�_string�randomr���Z _SystemRandom�collectionsr���Z_namedtuple� ascii_letters�digitsr���r���r���r.���r0���r"���r;���Z_vr6���r ���r ���r ���r ����<module>���s4��� &