(2018-04-27.Python ZeroからOneまで)一、MySQL_1.4.5例:ユーザーログイン

1351 ワード

例:ユーザーログイン
ユーザー・テーブルの作成userinfos
  • 表の構造は次の通りです.
  • id
  • uname
  • upwd
  • isdelete

  • 注意:パスワードを暗号化する必要がある
  • md 5暗号化を使用する場合、パスワードは32文字の
  • を含む.
  • sha 1暗号化を使用する場合、パスワードには40文字が含まれており、
  • を推奨する.
    create table userinfos(
    id int primary key auto_increment,
    uname varchar(20),
    upwd char(40),
    isdelete bit default 0
    );
    

    テストデータの追加
  • は、sha 1暗号化後の値
  • であるユーザ名123、パスワード123のデータを挿入する.
    insert into userinfos values(0,'123','40bd001563085fc35165329ea1ff5c5ecbdbbeef',0);
    

    入力を受信して検証
  • testLogin.pyファイルを作成し、hashlibモジュール、MysqlHelperモジュール受信入力
  • を導入する.
  • ユーザ名クエリによると、検出されない場合はユーザ名が存在しないことを示す
  • .
  • 調べたら一致パスワードが等しいかどうか、等しいならログイン成功を促す
  • .
  • 等しくなければパスワードエラー
  • を提示する.
    #encoding=utf-8
    from MysqlHelper import MysqlHelper
    from hashlib import sha1
    
    sname=raw_input("      :")
    spwd=raw_input("     :")
    
    s1=sha1()
    s1.update(spwd)
    spwdSha1=s1.hexdigest()
    
    sql="select upwd from userinfos where uname=%s"
    params=[sname]
    
    sqlhelper=MysqlHelper('localhost',3306,'test1','root','mysql')
    userinfo=sqlhelper.get_one(sql,params)
    if userinfo==None:
        print '     '
    elif userinfo[0]==spwdSha1:
        print '    '
    else:
        print '    '