Š¹¼]Wã@sTddlZddlZddlmZddlmZej ej dZ eƒZ Gdd„deddƒƒZ ddd „Zdd d „Ze d dd dƒZe ddddƒZe ddddƒZe ddddƒZgZxNeeefD]=ZedeƒZerüeeƒejkrüejeƒqüWejeƒ[[dS)éN)Ú SystemRandom)Ú namedtuplez./c@seZdZdd„ZdS)Ú_MethodcCsdj|jƒS)Nz)ÚformatÚname)Úself©rú*/opt/alt/python35/lib64/python3.5/crypt.pyÚ__repr__sz_Method.__repr__N)Ú__name__Ú __module__Ú __qualname__r rrrr r s rz name ident salt_chars total_sizecCsd|dkrtd}|jr1dj|jƒnd}|djdd„t|jƒDƒƒ7}|S)Nrz${}$Úcss|]}tjtƒVqdS)N)Ú_srÚchoiceÚ _saltchars)Ú.0Úcharrrr ú szmksalt..)ÚmethodsÚidentrÚjoinÚrangeZ salt_chars)ÚmethodÚsrrr Úmksalts   !)rcCs7|dkst|tƒr't|ƒ}tj||ƒS)N)Ú isinstancerrÚ_cryptÚcrypt)ZwordZsaltrrr r#s  rZCRYPTéé ÚMD5Ú1éé"ÚSHA256Ú5éé?ÚSHA512Ú6éjr)rÚstringÚ_stringÚrandomrZ _SystemRandomÚ collectionsrZ _namedtupleÚ ascii_lettersÚdigitsrrrrrZ METHOD_CRYPTZ METHOD_MD5Z METHOD_SHA256Z METHOD_SHA512rÚ_methodÚ_resultÚlenZ total_sizeÚappendrrrr Ús&