注册登录系统

# 注册登录系统
import hashlib
import json
import os.path


# 读取本地的所有账户数据
def load_account():


    # 如果保存用户账户的文件存在,则读取文件中的用户信息,反之说明之前从未有用户注册过,返回空字典即可。
    if os.path.exists("account.txt"):
        return json.load(open("account.txt"))
    else:
        return {}


# 保存本地所有的账户数据
def save_account(user_info):
    # 如果account已经存在于字典中,那么get方法会返回account对应的密码,此时if的结果就是真
    json.dump(user_info, open("account.txt", "wt", encoding="utf-8"))


UI = """
1.注册
2.登陆
0.退出
"""

print(UI)
no = int(input("请输入你的选择"))
if no == 1:


    # 读取本地账户数据
    dc = load_account()


    # 让用户输入账户密码
    account = input("请输入账户:")


    # 判断用户输入的账户是否存在,如果存在则提示用户重新注册。如果不存在进行注册
    if dc.get(account):
        print("账户已存在请重新注册")
    else:
        password = input("请输入密码:")
        confirm = input("请再次输入密码")


        # 让用户输入两边密码,如果密码一致则登录成功
        if password == confirm:


            # 将用户输入的密码进行加密
            ho = hashlib.md5(password.encode())
            encrypt = ho.hexdigest()


            # 将用户的账号密码加密后保存到文件中
            dc[account] = encrypt
            save_account(dc)
            print("注册成功")
        else:
            print("前后两次密码不一致,请重新注册")
elif no == 2:


    # 读取本地的所有账户数据
    dc = load_account()


    # 让用户输入账户
    account = input("请输入账户:")


    # 判断用户输入的账户是否在本地保存的信息中,
    if dc.get(account):


        # 如果用户输入的账户存在,则判断用户输入的密码(加密后的密码)是否跟系统中保存的一致
        password = input("请输入密码:")


        # 加密密码
        ho = hashlib.md5(password.encode())
        encrypt = ho.hexdigest()


        # 因为是字典,所有要有键(account)和值(encrypt),才能判断到对应的账户(键)和密码(值)。
        if dc.get(account, encrypt):
            print("登入成功")
        else:
            print("登入失败,请重新输入密码")
    else:
        print("账户不存在,请重新输入")

# 如果一致 登陆成功 反之登录失败

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的Python注册登录系统的示例代码,使用了SQLite数据库来保存用户信息: ```python import sqlite3 conn = sqlite3.connect('users.db') c = conn.cursor() # 创建用户表 c.execute('''CREATE TABLE IF NOT EXISTS users (username text, password text)''') # 注册函数 def register(): username = input("请输入用户名:") password = input("请输入密码:") # 检查用户名是否已存在 c.execute("SELECT * FROM users WHERE username=?", (username,)) if c.fetchone(): print("该用户名已被注册!") else: # 插入新用户信息到数据库 c.execute("INSERT INTO users VALUES (?, ?)", (username, password)) conn.commit() print("注册成功!") # 登录函数 def login(): username = input("请输入用户名:") password = input("请输入密码:") # 检查用户名和密码是否匹配 c.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password)) if c.fetchone(): print("登录成功!") else: print("用户名或密码错误!") # 程序入口 while True: choice = input("请选择操作(1.注册 2.登录 3.退出):") if choice == '1': register() elif choice == '2': login() elif choice == '3': break else: print("输入错误,请重新选择!") conn.close() ``` 这个程序使用了SQLite数据库来保存用户信息,如果需要使用其他数据库,则需要修改相关代码。另外,这个程序只是一个简单的示例,实际使用中需要对数据进行安全处理和加密存储等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值