zoukankan      html  css  js  c++  java
  • python学习之最简单的用户注册及登录验证小程序

    文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com

    正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底。

    有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号

    mysql> show create table user;
    mysql> alter table user add salt char(10);
    import hashlib
    In [64]: passwd='111111'
    
    In [67]: md5pass=hashlib.md5(passwd)
    
    In [69]: hashlib.md5(passwd).hexdigest()
    Out[69]: '96e79218965eb72c92a549dd5a330112'
    
    In [70]: hashlib.sha1(passwd).hexdigest()
    Out[70]: '3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d'
    
    
    In [71]: len(hashlib.sha1(passwd).hexdigest())
    Out[71]: 40
    In [72]: import string
    
    In [73]: import random
    In [74]: string.letters
    Out[74]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    
    In [75]: string.digits
    Out[75]: '0123456789'
    
    In [76]: string.digits+string.letters
    Out[76]: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    
    In [77]: random.sample(string.letters,5)
    Out[77]: ['S', 'E', 'w', 'F', 'L']
    
    In [78]: ''.join(random.sample(string.letters,10))
    Out[78]: 'RVviZAqLQK'
    dbconfig ={
        'host':'localhost',
        'user':'root',
        'passwd':'',
        'charset':'utf8',
        'db':'db_02'
        }
    import MySQLdb
    import string
    import random
    import hashlib
    
    class User(object):
        def __init__(self, name, email, passwd,salt):
            conn = MySQLdb.connect(**dbconfig)
            cursor = conn.cursor()
            sql = 'insert into user(name, email, password, salt) values(%s, %s, %s, %s)'
            cursor.execute(sql, (name, email, passwd, salt))
            #self.name = name
            #self.email = email
            conn.commit()
            cursor.close()
            conn.close()
            
        @staticmethod
        def regist( name, email, passwd):
            salt,passwd = User.salt_passwd(passwd)
            User(name, email, passwd, salt)
        
        @staticmethod
        def login(name, passwdin):
            conn = MySQLdb.connect(**dbconfig)
            cursor = conn.cursor()
            sql = 'select id,name,email,password,salt from user where name=%s'
            if cursor.execute(sql, (name,)):
                userid,name, email, passwd, salt =cursor.fetchone()
                #print cursor.fetchone()
                salt_passwdin = hashlib.sha1(salt+passwdin).hexdigest()
                if passwd == salt_passwdin:
                    return userid
            return None
        
        #def get_user(userid)
        def get_name(self, userid):
            return userid, name, email, 
        
        @staticmethod
        def salt_passwd(passwd):
            salt = ''.join(random.sample(string.letters, 10))
            passwd = hashlib.sha1(salt+passwd).hexdigest()
            return salt, passwd
    
            
    testuser = {
        'name':'alen',
        'passwd':'111111',
        'email':'alen@a.com'
    }
    
    #User.regist(**testuser)  
    
    
    
    print User.login(name='alenaaa', passwdin='11111')
  • 相关阅读:
    ACM: HDU 2544 最短路-Dijkstra算法
    ACM: HDU 1874 畅通工程续-Dijkstra算法
    ACM: SGU 101 Domino- 欧拉回路-并查集
    ACM: HDU 1285 确定比赛名次
    ACM: hdu 2647 Reward -拓扑排序
    ACM: hdu 1811 Rank of Tetris
    ACM: poj 1094 Sorting It All Out
    ACM: hihicoder #1174 : 拓扑排序·一 STL- queue
    ACM: CodeForces 140A New Year Table-数学几何
    POJ 3122 Pie 二分枚举
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/3753902.html
Copyright © 2011-2022 走看看