python的hashlib庫的md5摘要是不可反解的,非常安全
摘要是單項不可逆的
加密是可以解密的,是雙向的
haxdigest hax是16進制,digest是摘要
#md5加密是不可反解的
import hashlib
#實例化對象
obj=hashlib.md5() #先創建一個md5的對象
#寫入要加密的字節
obj.update("admin".encode("utf-8")) #對誰加密就把誰寫道前面,python3中必須是字節,所以必須用.encode()
#獲取密文
secret=obj.hexdigest()
print(secret)
##############################################################
import hashlib
obj=hashlib.md5(b'12334') #實例化md5的時候可以給傳個參數,這叫加鹽
obj.update("admin".encode("utf-8")) #是再加密的時候傳入自己的一塊字節,
secret=obj.hexdigest()
print(secret)
##############################################################
#因為用戶密碼已經被加密過了,而且是加鹽的,所以再用戶驗證的時候用字符串或者直接的加密的的字節都不能正確判斷,只能用加鹽的字節所判斷
import hashlib
SALT = b'2erer3asdfwerxdf34sdfsdfs90'
def md5(pwd):
# 實例化對象
obj = hashlib.md5(SALT)
# 寫入要加密的字節
obj.update(pwd.encode('utf-8'))
# 獲取密文
return obj.hexdigest()
user = input("請輸入用戶名:")
pwd = input("請輸入密碼:")
if user == 'oldboy' and md5(pwd) == 'c5395258d82599e5f1bec3be1e4dea4a':
print('登錄成功')
else:
print('登錄失敗')
