???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
Õì2aH  ã               @   sè   d dl Z d dlZd dlmZ d dlmZ ej	ej
 d Zeƒ ZG dd„ deddƒƒZddd	„Zdd
d„ZeddddƒZeddddƒZeddddƒZeddddƒZg Zx:eeeefD ]*ZedeƒZer²eeƒejkr²ejeƒ q²W [[dS )é    N)ÚSystemRandom)Ú
namedtuplez./c               @   s   e Zd Zdd„ ZdS )Ú_Methodc             C   s   dj | jƒS )Nz<crypt.METHOD_{}>)ÚformatÚname)Úself© r   ú*/opt/alt/python36/lib64/python3.6/crypt.pyÚ__repr__   s    z_Method.__repr__N)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r	   r      s   r   z name ident salt_chars total_sizec             C   sH   | d krt d } | jr"dj| jƒnd}|djdd„ t| jƒD ƒƒ7 }|S )Nr   z${}$Ú c             s   s   | ]}t jtƒV  qd S )N)Ú_srÚchoiceÚ
_saltchars)Ú.0Úcharr   r   r	   ú	<genexpr>   s    zmksalt.<locals>.<genexpr>)ÚmethodsZidentr   ÚjoinÚrangeZ
salt_chars)ÚmethodÚsr   r   r	   Úmksalt   s
    r   c             C   s&   |d kst |tƒrt|ƒ}tj| |ƒS )N)Ú
isinstancer   r   Ú_cryptÚcrypt)ZwordZsaltr   r   r	   r   #   s    
r   ZCRYPTé   é   ZMD5Ú1é   é"   ZSHA256Ú5é   é?   ZSHA512Ú6éj   r   )N)N)r   ÚstringZ_stringZrandomr   Z_SystemRandomÚcollectionsr   Z_namedtupleZascii_lettersÚdigitsr   r   r   r   r   ZMETHOD_CRYPTZ
METHOD_MD5ZMETHOD_SHA256ZMETHOD_SHA512r   Ú_methodZ_resultÚlenZ
total_sizeÚappendr   r   r   r	   Ú<module>   s$   	


