???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
Š¹¼]W  ã               @   sT  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 Gd 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 xN e e e f D]= Z e d e ƒ Z e rü e e ƒ e j k rü e j e ƒ qü We j e ƒ [ [ 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/python35/lib64/python3.5/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   sd   |  d  k r t  d }  |  j r1 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>)ÚmethodsÚidentr   ÚjoinÚrangeZ
salt_chars)ÚmethodÚsr   r   r	   Úmksalt   s
    
!)r   c             C   s7   | 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é   é   ÚMD5Ú1é   é"   ÚSHA256Ú5é   é?   ÚSHA512Ú6éj   r   )r   ÚstringÚ_stringÚrandomr   Z_SystemRandomÚcollectionsr   Z_namedtupleÚascii_lettersÚdigitsr   r   r   r   r   ZMETHOD_CRYPTZ
METHOD_MD5ZMETHOD_SHA256ZMETHOD_SHA512r   Ú_methodÚ_resultÚlenZ
total_sizeÚappendr   r   r   r	   Ú<module>   s&   		