hashlib 简单的登录例子

hashlib例子:

import hashlib
md5 = hashlib.md5()
md5.update("chenadong")
print md5.hexdigest()
>>>09b8ed39ecf488704d1898134e3d94a1

摘要算法:

对同一个字符串进行摘要算法得到的结果永远相同

当前有很多种摘要算法;
    md5()是最常用的

不同的算法结果可能不同

不同的摘要算法,在python里面的使用方法都是一样的

hashlib简单应用:登录功能:

import hashlib
import time


def get_passwd():
    __passwd = raw_input(">>>请输入密码")
    return str(__passwd)


def get_username():
    __username = raw_input(">>>请输入用户名")
    return __username


def sign_in():
    __username = str(raw_input(">>>请输入用户名"))
    __passwd = bytes(raw_input(">>>请输入密码"))
    # print(__passwd)
    md5 = hashlib.md5()
    md5.update(__passwd)
    __passwd = md5.hexdigest()
    # print __passwd
    with open("./user.txt", "wb") as f:
        f.write(__username + "\n")
        f.write(__passwd)

    print "signed"


def login():
    sign_in()
    while True:
        ____username = get_username()
        # print "****%s" % ____username
        ____passwd = get_passwd()
        with open("./user.txt", "r") as f:
            lst = f.readlines()

        signed_user = lst[0].split("\n")[0]
        signed_passwd = lst[1]
        # print signed_passwd, signed_user
        md5 = hashlib.md5()
        md5.update(____passwd)
        ____passwd = md5.hexdigest()
        if ____username == signed_user:
            if ____passwd == signed_passwd:
                print "welcome back %s!!!" % ____username
            else:
                print "your passwd is not match, please try again later"
                time.sleep(3)
                break
        else:
            print "unsigned username"


if __name__ == "__main__":
    login()


>>>请输入用户名a
>>>请输入密码a
signed
>>>请输入用户名a
>>>请输入密码a
welcome back a!!!
>>>请输入用户名a
>>>请输入密码b
your passwd is not match, please try again later

猜你喜欢

转载自www.cnblogs.com/chenadong/p/9649698.html