zoukankan      html  css  js  c++  java
  • python-注册登录:注册后的数据存入数据库mysql、登录的数据从mysql中获取

        需求:
            注册、登录
            1、注册成功的数据存入数据库(mysql)
            2、登录的数据是数据库里已存在的
            3、密码要存成密文

    import pymysql
    import hashlib
    
    #执行sql语句
    def my_sql(sql):
        #连接数据库
        conn=pymysql.connect(host='host',user='user',password='password',db='db',port=3306,
               charset='utf8',autocommit=True)#autocommit 自动提交sql
        cur=conn.cursor(pymysql.cursors.DictCursor)#建立游标,设置返回数据类型是字典
        cur.execute(sql)#执行sql
        res=cur.fetchone()#返回一条数据
        cur.close()#关闭游标
        conn.close()#关闭数据库
        return res
    
    #加密
    def my_md5(s,salt=''):#salt 加盐
        s = s + salt
        news=s.encode()#加密之前用 encode()变成二进制
        m=hashlib.md5(news) #加密
        return m.hexdigest() #返回密文
    
    #注册
    def reg():
        for i in range(3):
            print('欢迎注册'.center(50, '*'))
            user = input('账号:').strip().lower()  # 去除空格或换行符,输入的字母全部转为小写
            pd = input('密码:').strip()
            cpd = input('确认密码:').strip()
            sql='select username,passwd from app_myuser where username="%s";'%user
            # user_dic=my_sql(sql)
            if len(user) not in range(6, 11) or len(pd) not in range(6, 11):
                print('账号/密码长度必须在6-10之间')
            elif pd != cpd:
                print('两次输入的密码不一致')
            # elif user == user_dic['username']:
            elif my_sql(sql):#非空即真
                print('用户名重复!')
            else:  # 账号和密码合格则存入数据库,密码存入密文
                insert_sql='insert into app_myuser (username,passwd,is_admin) value ("%s","%s",1);'%(user,my_md5(pd))
                my_sql(insert_sql)
                print(user,my_md5(pd))
                print('注册成功'.center(50, '*'))
                break
        else:
            print('输入错误次数过多')
    
    #登录
    def login():
        for i in range(3):
            user = input('请输入登录账号:').strip().lower()
            pd = input('请输入密码:').strip()
            sql = 'select username,passwd from app_myuser where username="%s";'%user
            if user=="" or pd=="":
                print('账号/密码不能为空')
            else:
                user_dic = my_sql(sql)
                if user_dic:
                    if my_md5(pd) == user_dic.get('passwd'):
                        print('登陆成功!')
                        break
                    else:
                        print('密码错误!')
                else:
                    print('用户不存在')
        else:
            print('错误次数较多,请稍后重新输入!')
  • 相关阅读:
    WinService12r2系统加固-3389端口与端口安全
    WinService12r2系统加固-账户管理与服务安全
    渗透测试常用工具-stunnel内网穿透
    渗透测试常用工具-ptunnel内网穿透
    报错注入函数
    常见绕过disable_function(抄录)linux系统。windows系统大概只有com组件
    nmap(抄录)
    php回调木马
    NoSql注入小测试。
    日志:记一次网页篡改(从开始到质保)一个渗透工作者的工作之路
  • 原文地址:https://www.cnblogs.com/you-me/p/10170219.html
Copyright © 2011-2022 走看看