Django:auth_userのパスワード確認

auth_user.password は ”ハッシュアルゴリズム$お塩$シークレット"という文字列です。

(pinax)hdknr@debpinax:~/pinax/mysite$ more djpwd.py
import MySQLdb
import hashlib

dbname=’mysite’
dbhost=’localhost’
dbuser=’mysite’
dbpass=’mysite’
#

def authuser(usr,pwd):
    db=MySQLdb.connect(db=dbname,host=dbhost,user=dbuser,passwd=dbpass)
    c=db.cursor()
    sql= "SELECT username,password FROM auth_user WHERE username like ‘%s’ " % usr
    c.execute(sql)
    record=c.fetchone()
    if record is not None:
        username = record[0]
        (hash,salt,secret) = record[1].split(‘$’)
        gen_secret = getattr(hashlib,hash)(salt+pwd).hexdigest()
        return  (secret == gen_secret)
    return False

if __name__ == ‘__main__’:
    import sys
    if len(sys.argv) < 3:
        print "djpwd.py username password"
        exit
    print sys.argv[1] ," is authenticated ? ",authuser(sys.argv[1],sys.argv[2])

(pinax)hdknr@debpinax:~/pinax/mysite$ python djpwd.py hdknr hdknr
hdknr  is authenticated ?  True
(pinax)hdknr@debpinax:~/pinax/mysite$ python djpwd.py hdknr hoge
hdknr  is authenticated ?  False

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中