Python中实现MD5加密是通过hashlib库的md5完成的
1. md5加密基本使用
#md5加密是不可反解的
import hashlib
#实例化对象
obj=hashlib.md5() #先创建一个md5的对象
#写入要加密的字节
obj.update("admin".encode("utf-8")) #对谁加密就把谁写道前面,python3中必须是字节,所以必须用.encode()
#获取密文
secret=obj.hexdigest()
print(secret)
2. 创建md5对象时,传递参数,加盐
import hashlib
obj=hashlib.md5(b'12334') #实例化md5的时候可以给传个参数,这叫加盐
obj.update("admin".encode("utf-8")) #是再加密的时候传入自己的一块字节,
secret=obj.hexdigest()
print(secret)
3. md5 加盐使用的示例
#因为用户密码已经被加密过了,而且是加盐的,所以再用户验证的时候用字符串或者直接的加密的的字节都不能正确判断,只能用加盐的字节所判断
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('登录失败')