Files
controller-wisetopdataserver/python/biopro/file/user/__pycache__/password.cpython-37.opt-2.pyc
T

50 lines
7.9 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
´-Ó_í#ã@s ddlZddlZddlZddlmZddlmZmZmZm Z y ddl
Z
Wn e k
rhddl m
Z
YnXddlTddlTddlmZdd d
d d d
ddddddddddddddddddhZeed œd!d"„Zeeed#œd$d%„ZGd&d'„d'ejd(ZGd)d*„d*eeeƒZed+krœddlZeejƒdkr:e ejdd,d-ƒnbeejƒd.kr^e eejdƒƒn>eejƒd/krŠe eejd.ejdƒƒne!d0ejd/ƒdS)1éN)ÚPath)ÚListÚDictÚIterableÚOptionalé)Ú_secrets)Ú*)Ú part_suffixZ123412312343215678abcdZqwertyZazertyZqwerasdfZqazwsxZ1q2w3e4rZadminZbaseballZcharlieZdonaldZdragonZfootballZiloveyouÚmasterZmonkeyÚpasswordZprincessZ
qwertyuiopZsunshineZsupermanZwhateverZwelcomez!@#$%^&*Zau3a83)r ÚreturncCs4t d¡}t d| d¡|d¡}t ||¡ d¡S)Né@Úsha512zutf-8i †Úascii)ÚsecretsZ token_bytesÚhashlibÚ pbkdf2_hmacÚencodeÚbinasciiÚhexlifyÚdecode)r ÚsaltZpw_hash©rú9/home/pi/bioprorelife/python/biopro/file/user/password.pyÚ
hash_passwordJs
r)ÚstoredÚprovidedr
cCsFt | d¡¡}|dd}|dd}t d| d¡|d¡}||kS)Nrrrzutf-8i †)rÚ unhexlifyrrr)rrrZpw0_hashZpw1_hashrrrÚverify_passwordUs
  rc@eZdZeejedœddƒƒZejee dœddƒZ
eje e dœddƒZ eje e e d œd
d ƒZ
eje e d œd
dƒZeje ee dœddƒZeje e e dœddƒZeje e dœddƒZeje e d œddƒZdS)Ú PasswordAPI)r
cCsdS)Nr)ÚselfrrrÚ
password_filefszPasswordAPI.password_filecCsdS)Nr)r!rrrÚ user_listlszPasswordAPI.user_list)Úuserr
cCsdS)Nr)r!r$rrrÚ user_hashqszPasswordAPI.user_hash)r$r r
cCsdS)Nr)r!r$r rrrÚ user_verifyvs
zPasswordAPI.user_verify)r$r cCsdS)Nr)r!r$r rrrÚuser_addszPasswordAPI.user_add)r r
cCsdS)Nr)r!r rrrÚcheck_password_strength‡sz#PasswordAPI.check_password_strength)r$r Ú new_passwordcCsdS)Nr)r!r$r r)rrrÚ user_changes zPasswordAPI.user_changecCsdS)Nr)r!r$rrrÚ user_forgetszPasswordAPI.user_forgetcCsdS)Nr)r!r$r rrrÚuser_del¬szPasswordAPI.user_delN)Ú__name__Ú
__module__Ú __qualname__ÚpropertyÚabcÚabstractmethodrr"rÚstrr#r%Úboolr&r'rr(r*r+r,rrrrr cs& 
r )Ú metaclassc@s4eZdZdZedœddZddœddZeeee e fd œd
d ƒZ
eeee e fd œd
dƒZ e edœddƒZ
ee dœddZe e dœddZd-e e edœddZee e dœddƒZd.e e ee dœddZee e e d œd!d"„ƒZe e dœd#d$„Zee e dœd%d&„ƒZee dœd'd(„Zd)d*„Zd+d,„ZdS)/ÚPasswordManager)Z
__filepathÚ
__passwordZ__forget)ÚfilepathcCs(t |¡||_| |j¡|_i|_dS)N)Ú SynchronizedÚ__init__Ú_PasswordManager__filepathÚ_PasswordManager__load_fileÚ_PasswordManager__passwordÚ_PasswordManager__forget)r!r8rrrr:·s
zPasswordManager.__init__N)r
cCs
tƒdS)N)Ú RuntimeError)ÚclsrrrÚ__init_subclass__¾sz!PasswordManager.__init_subclass__)r8r
c Csf| ¡s iS| ¡s tt|ƒƒi}| d¡.}x&|D]}t| ¡dƒ\}}|||<q6WWdQRX|S) )ÚexistsÚis_fileÚIsADirectoryErrorr3Úopenr
Ústrip)r8ÚretÚlineÚurrrZ __load_fileÂs  
zPasswordManager.__load_file)r8Údatac Cs`|j}| ¡s|jdd| d¡2}x*t| ¡ƒD]}||}t|||dq4WWdQRXdS)NT)ÚparentsÚw)Úfile)ÚparentrDÚmkdirrGÚsortedÚkeysÚprint)r8rNÚdrJrMrLrrrZ __sync_fileÓs  zPasswordManager.__sync_filecCs|jS)N)r;)r!rrrr"ßszPasswordManager.password_filecCst|j ¡ƒS)N)Úlistr=rU)r!rrrr#ãszPasswordManager.user_list)r$r
cCs.y
|j|Stk
rYnXtt|ƒdS)N)r=ÚKeyErrorÚ
ValueErrorÚUSER_NOT_FOUND)r!r$rrrr%æs

zPasswordManager.user_hashT)r$r r
cCsJy0t|j||ƒrdS|s.t|j||ƒr.dSdStk
rDdSXdS)NTF)rr=r>rY)r!r$r Ústrictrrrr&îs
zPasswordManager.user_verify)r$r cCsT||jkrtt|ƒ| ||¡}|dk r2tt|ƒt|ƒ|j|<| |j|j¡dS)N)r=rZÚUSER_HAS_BEEN_USEDr(ÚPASSWORD_TOO_WEAKrÚ_PasswordManager__sync_filer;)r!r$r Úmessagerrrr's

 
zPasswordManager.user_add)r Ú user_namer