返回顶部
首页 > 资讯 > 后端开发 > Python >python登录验证模块
  • 877
分享到

python登录验证模块

模块python 2023-01-31 02:01:51 877人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

#/usr/bin/env python2.7 #-*- coding:utf-8 -*- """ 功能:     登录验证模块 详细说明:     1.密码文件为passwd     2.passwd未创建或丢失,会提示:密码文件不存在,

#/usr/bin/env python2.7
#-*- coding:utf-8 -*-
"""
功能:
    登录验证模块
详细说明:
    1.密码文件为passwd
    2.passwd未创建或丢失,会提示:密码文件不存在,建议重新注册!!
    3.未注册用户登录会提示:用户名不存在,请您先进行注册!
    4.已注册用户登录时,忘记密码,尝试3次后密码还不正确则退出验证,等一会儿则可以重新登录
    5.作为装饰器进行登录验证
"""
import JSON
import hashlib
import os
pwd = os.getcwd()
fileName = os.path.join(pwd,"passwd")

#将明文密码通过md5进行加密,返回一个加密后的md5的值
def calc_md5(passwd):
    md5 = hashlib.md5("haliluya")
    md5.update(passwd)
    ret = md5.hexdigest()
    return ret


#新用户注册模块
def reGISter():
    #判断密码文件passwd是否存在,存在则载入列表,不存在就重新创建一个空字典
    if os.path.exists(fileName):
        #载入用户列表,数据结构为字典,k=userName,v=passwdMd5
        with open("passwd", "r+") as loadsFn:
            userDB = json.loads(loadsFn.read())
    else:
        userDB = {}
    #让用户输入用户名
    userName = raw_input("姓名:")
    #标志位:控制循环跳出
    flag = True
    while flag:
        #用户注册时,需输入两次密码
        passwd1 = raw_input("密码:")
        passwd2 = raw_input("确认密码:")
        #如果两次密码不一致,则不执行下一步,再次输入密码并进行确认
        if not passwd1 == passwd2:
            continue
        else:
            #两次输入密码一致,标志位置为False,下次跳出循环
            flag = False
        #调用calc_md5函数将明文密码转为对应的md5值,用于保存
        passwdMd5 = calc_md5(passwd1)
    #将用户名与密码对应存入字典userDB中
    userDB[userName] = passwdMd5
    #将用户名和密码存入文件
    with open(fileName, "w") as dumpFn:
        dumpFn.write(json.dumps(userDB))


#用户登录验证,装饰器
def login(func):
    def decorater(*args,**kwargs):
        #判断passwd文件是否存在,存在则载入userDB(用户:密码),否则就重新注册新的passwd文件并返回
        if os.path.exists(fileName):
            with open("passwd", "r+") as loadsFn:
                userDB = json.loads(loadsFn.read())
        else:
            print "密码文件不存在,建议重新注册!!"
            register()
            return

        name = raw_input("用户名:")
        #用户名是否存在,存在就继续输入密码,不存在则进行注册
        if name in userDB.keys():
            flag = True
            counter = 0
            #循环输入密码,密码正确,flag=False(下次直接跳出循环)并执行函数,密码错误则允许尝试3次,超过3次验证失败,退出验证
            while flag:
                passwd = raw_input("密码:")
                passwdMd5 = calc_md5(passwd)
                if passwdMd5 == userDB[name]:
                    flag = False
                    func(*args,**kwargs)
                elif counter > 2:
                    print "您已经尝试了3次,请过会儿再试!!"
                    return
                else:
                    counter += 1
        else:
            print "用户名不存在,请您先进行注册!"
            register()
    return decorater

if __name__ == "__main__":
    @login
    def hello():
        print "Hello world!"
    hello()


--结束END--

本文标题: python登录验证模块

本文链接: https://lsjlt.com/news/186774.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python登录验证模块
    #/usr/bin/env python2.7 #-*- coding:utf-8 -*- """ 功能:     登录验证模块 详细说明:     1.密码文件为passwd     2.passwd未创建或丢失,会提示:密码文件不存在,...
    99+
    2023-01-31
    模块 python
  • auth模块(登录验证)
    settings:'django.contrib.auth.middleware.AuthenticationMiddleware',#这个是认证的中间件,认证成功的话,就可以把这个用户user封装到request里面,下次过来的话就可以...
    99+
    2023-01-30
    模块 auth
  • python 模拟网站登录——滑块验证码的识别
    普通滑动验证 以http://admin.emaotai.cn/login.aspx为例这类验证码只需要我们将滑块拖动指定位置,处理起来比较简单。拖动之前需要先将滚动条滚动到指定元...
    99+
    2024-04-02
  • JavaScript实现登录滑块验证
    本文实例为大家分享了JavaScript实现登录滑块验证的具体代码,供大家参考,具体内容如下 html代码 <div class="login-select"> ...
    99+
    2024-04-02
  • vue实现登录时滑块验证
    本文实例为大家分享了vue实现登录时滑块验证的具体代码,供大家参考,具体内容如下 1.效果图 2. 新建 SliderCheck.vue组件 <template> &...
    99+
    2024-04-02
  • Python模拟登录验证码(代码简单)
    废话不多说了,直接给大家贴代码了。 import urllib import urllib2 import cookielib def getImg(picurl): ''' request for r...
    99+
    2022-06-04
    验证码 代码 简单
  • Python爬虫模拟登录带验证码网站
    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。 首先得明白cookie的作用,coo...
    99+
    2022-06-04
    爬虫 验证码 网站
  • python+selenium行为链登录12306(滑动验证码滑块)
    使用python网络爬虫登录12306,网站界面如下。因为网站的反爬是不断升级的,以下代码虽然当前可用,但早晚必将会不再能满足登录需求。但是知识的价值,是不容置疑的。 from s...
    99+
    2024-04-02
  • mongodb 验证登录
    mongodb  验证登录Start MongoDB without access control.mongod --port 27017 --dbpath /data/db1Connect to...
    99+
    2024-04-02
  • Python实现简单登录验证
    本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1、输入用户名密码    2、认证成功后显示欢迎信息    3、输错三次后锁定 #coding=utf-8 ...
    99+
    2022-06-04
    简单 Python
  • python 密码验证(滑块验证)
    目录题目描述:解题思路/算法分析/问题及解决实验代码题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入显示,前面的变成...
    99+
    2024-04-02
  • Selenium&Pytesseract模拟登录+验证码识别
    验证码是爬虫需要解决的问题,因为很多网站的数据是需要登录成功后才可以获取的.验证码识别,即图片识别,很多人都有误区,觉得这是爬虫方面的知识,其实是不对的.验证码识别涉及到的知识:人工智能,模式识别,机器视觉,图像处理.主要流程:1 图像采集...
    99+
    2023-01-30
    验证码 Selenium Pytesseract
  • AHBRAM模块验证笔记
    文章目录 AHBRAM模块验证笔记AHBRAM模块解读AHBRAM验证结构布局AHBRAM测试用例AHBRAM覆盖率收集分析覆盖率收集情况添加新的测试用例异常激励测试 AHBRAM模块...
    99+
    2023-09-06
    网络 服务器 网络协议
  • 登录校验之滑块验证码完整实现(vue + springboot)
    文章目录 前言一、实现效果二、实现思路三、实现步骤1. 后端 java 代码1.1 新建一个拼图验证码类1.2 新建一个拼图验证码工具类1.3 新建一个 service 类1.4 新建一个 controller 类1.5 登录接口 ...
    99+
    2023-08-18
    vue.js spring boot java
  • Python之selenium,使用webdriver模拟登录网站(含验证码)
    一、前言 前段时间做了一个小项目,其中有一段需要自动获取网站后台的数据,但是这个网站没有任何提供给开发者的API,所以只能靠自己去探索。 起初想着用发送请求的方式去模拟登陆,获取cookies,从而再获取网站后台数据,但是因为自己太菜了一些...
    99+
    2023-09-29
    python selenium 测试工程师 软件测试 性能测试 自动化测试 测试工具
  • Express实现登录验证
    本文实例为大家分享了Express实现登录验证的具体代码,供大家参考,具体内容如下 Express实现的路由登录,这套代码适用于很多场景,特此记录,以备后用。 首先是主文件:serv...
    99+
    2024-04-02
  • python爬虫模拟登录之图片验证码实现详解
    我们在用爬虫对门户网站进行模拟登录是总会有输入图片验证码的,例如这种 那我们怎么解决这个问题实现全自动的模拟登录呢?只要思想不滑坡,办法总比困难多。我这里使用的是百度智能云里面的文...
    99+
    2024-04-02
  • vue实现登录验证码
    本文实例为大家分享了vue实现登录验证码的具体代码,供大家参考,具体内容如下 先来demo效果图 canvas验证码组件(可直接复制,无需改动) <template>...
    99+
    2024-04-02
  • VUE实现token登录验证
    本文实例为大家分享了VUE实现token登录验证的具体代码,供大家参考,具体内容如下 实现这个登录功能的过程真是一波三折,中途出现了bug,整了两三天才解决了问题,心力交瘁,简直一个...
    99+
    2024-04-02
  • Android实现验证码登录
    本文实例为大家分享了Android实现验证码登录的具体代码,供大家参考,具体内容如下 结果展示 1.导包 1.1在项目的gradle中导入 maven { url "https...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作