python验证用户名和密码

这篇是接上一篇内容,上篇实现了如何将明文的密码加密写入数据库中,咱们今天这段代码就是实现如何让用户输入用户名和密码,而后跟数据库中的信息进行比较,若是匹配就显示登录成功,若是密码错误将提示用户继续输入,用户可输入三次密码尝试,若是都输入错误就直接退出,若是有一次正确就表示登录成功,接下来咱们来看脚本实现:python



#!/usr/bin/env pythonsql

 

import sys数据库

import hashlibapp

import getpasside

import sqlite3函数

 

def main():测试

    user_name = raw_input('Please Enter User Name: ')fetch

    conn = sqlite3.connect('pub.db')加密

    cu = conn.cursor()spa

    sql = '''

          select name,pass from user where name = ?

          '''

    cu.execute(sql, (user_name,))

    uname,pw = cu.fetchone()

 

    pass_try = 0

    x = 3

    while pass_try < x:

        user_pass = hashlib.sha224(getpass.getpass('Please Enter Password: ')).hexdigest()

        if user_pass != pw:

             print 'Incorrect Password,\n'

             pass_try += 1

        else:

            print 'User is logged in!\n'

            sys.exit()

 

if __name__ == "__main__":

    main()



脚本解释,根据用户输入的用户名,从数据库中查询用户名和密码,此处写的教简单,正常应先判断是否有这个用户名,若是没有就直接返回错误,请须要的朋友本身加代码测试吧,从数据库中获取数据用的游标对象,fetchone()函数将获取数据库中用户信息,返回的是元组,赋值给变量user,pw,而后定义了能够容许用户尝试几回密码,这里定义的是3次,接下来是个while循环,判断条件是若是密码输入的次数少于容许输入的次数,就一直让用户输入,输入三次后仍不正确就退出程序,若是有一次正确,就显示用户登陆,而后退出,脚本完毕。

相关文章
相关标签/搜索