欢迎访问宙启技术站
智能推送

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等。