python 中的hashlib有加密和解密的功能
例:
import hashlib # 提供摘要算法的模塊 md5 = hashlib.md5() md5.update(b'123456') # 注意是bytes print(md5.hexdigest())
輸出結果:aee949757a2e698417463d47acac93df
不管算法多么不同,摘要的功能始終不變
對於相同的字符串使用同一個算法進行摘要,得到的值總是不變的
使用不同算法對相同的字符串進行摘要,得到的值應該不同
不管使用什么算法,hashlib的方式永遠不變
用處:
1 密碼的密文存儲
2 文件的一致性驗證
用戶的登陸:
#用戶的登錄 import hashlib usr = input('username :') pwd = input('password : ') with open('userinfo') as f: for line in f: user,passwd,role = line.split('|') md5 = hashlib.md5() md5.update(bytes(pwd,encoding='utf-8')) md5_pwd = md5.hexdigest() if usr == user and md5_pwd == passwd: print('登錄成功')
加鹽:
#加鹽 import hashlib # 提供摘要算法的模塊 md5 = hashlib.md5(bytes('鹽',encoding='utf-8')) #加鹽的步驟 # md5 = hashlib.md5() md5.update(b'123456') print(md5.hexdigest())
動態加鹽: 使用用戶名的一部分或者 直接使用整個用戶名作為鹽
import hashlib # 提供摘要算法的模塊 md5 = hashlib.md5(bytes('鹽',encoding='utf-8')+b'這里為用戶的信息') # md5 = hashlib.md5() md5.update(b'123456') print(md5.hexdigest())