Python中使用MD5加密算法保护用户登录信息的示例代码
发布时间:2023-12-18 11:56:17
在Python中,可以使用hashlib模块中的md5()函数来实现使用MD5加密算法保护用户登录信息。
以下是一个示例代码,用于演示如何使用MD5加密算法对用户输入的密码进行加密,并验证登录信息的正确性。
import hashlib
def encrypt_password(password):
# 创建md5对象
md5 = hashlib.md5()
# 对密码进行编码
password = password.encode(encoding='utf-8')
# 更新md5对象的哈希值
md5.update(password)
# 获取加密后的密码,并以16进制形式表示
encrypted_password = md5.hexdigest()
return encrypted_password
def verify_login(username, password):
# 模拟获取存储在数据库中的加密密码
stored_password = get_stored_password(username)
# 对输入的密码进行加密
encrypted_password = encrypt_password(password)
# 验证加密后的密码与存储的加密密码是否一致
if encrypted_password == stored_password:
return True
else:
return False
def get_stored_password(username):
# 模拟从数据库中获取存储的加密密码
# 实际应用中需要从数据库或其他存储系统中获取密码
stored_password = {
"admin": "21232f297a57a5a743894a0e4a801fc3", # 'admin'的加密密码
"user": "e10adc3949ba59abbe56e057f20f883e", # 'user'的加密密码
}
return stored_password.get(username)
def main():
username = input("请输入用户名:")
password = input("请输入密码:")
if verify_login(username, password):
print("登录成功")
else:
print("用户名或密码错误")
if __name__ == "__main__":
main()
在这个示例代码中,encrypt_password()函数用于对密码进行加密。它创建一个md5对象,并使用update()方法更新md5对象的哈希值,最后通过hexdigest()方法获取加密后的密码。verify_login()函数用于验证登录信息的正确性。它通过调用get_stored_password()函数获取存储的加密密码,并与输入的密码进行比较来验证登录信息。get_stored_password()函数用于模拟从数据库中获取存储的加密密码。
在main()函数中,用户输入用户名和密码后,通过调用verify_login()函数验证登录信息的正确性,并输出相应的结果。
以下是一些示例运行结果:
请输入用户名:admin 请输入密码:password 登录成功 请输入用户名:user 请输入密码:mypassword 用户名或密码错误
请注意,MD5加密算法已经被证明不是非常安全,不建议将其用于实际的用户密码加密。在实际应用中,更应该使用更为安全的算法,如bcrypt或scrypt等。
