• Python 生成哈希hash--hashlib模块


    Python 生成哈希hash--hashlib模块

    1)生成hash并保存在本地

    (1)代码

    [python] view plain copy
    import hashlib
    import shelve

    #原密码paw={"water":"123456","root":"admin123"}
    #生成hash
    m1 = hashlib.md5("123456".encode("utf-8"))
    m2 = hashlib.md5("admin123".encode("utf-8"))
    h1 = m1.hexdigest()
    h2 = m2.hexdigest()
    print(h1)
    print(h2)

    #现在利用shelve保存账号和密码信息到本地
    db1 = shelve.open("E:/Python_Code/work/hash_dic")
    db1["water"] = h1
    db1["admin"] = h2
    (2)输出

    e10adc3949ba59abbe56e057f20f883e

    0192023a7bbd73250516f069df18b500

    2)模仿登陆

    上面我们已经生成密码信息的哈希值,并且用shelve库保存到了本地,现在是时候使用它了。

    (1)代码

    [python] view plain copy
    import hashlib
    import shelve

    #从shelve文件中读取用户信息
    db1 = shelve.open("E:/Python_Code/work/hash_dic")

    #退出系统
    def tuichu():
    print("正在退出系统...")
    exit("期待下次与您相遇!")

    # 操作函数,依据用户名给予不同的权限
    def caozuo(user_name):
    if user_name=="admin":
    tuichu() #测试用
    else:
    tuichu() #测试用
    #登录函数
    def login():
    for i in range(3): #只有3次登录机会
    user_name = input("帐号:")
    user_pass = input("密码:")
    m = hashlib.md5(user_pass.encode("utf-8"))
    hash_pass = m.hexdigest()
    for ku,vu in db1.items():
    if user_name == ku and hash_pass == vu:
    print("登录成功!欢迎您{}!".format(ku))
    #这里可以执行操作函数
    caozuo(user_name)
    break
    else:
    print("帐号或密码错误!您还有{}次机会!".format(2-i))
    continue
    else:
    print("今日登录次数已经用完!")
    if __name__ == '__main__':
    login()

    文:http://www.ylsjwang.com/dianshiju/24.html
    (2)运行

     

  • 相关阅读:
    erl_0012 timer:tc 测试模块函数调用运行耗时
    erl_0011 erlang 定时器相关
    erl0010
    erl0009
    erl0008
    erl0007
    erl0006
    erl0005
    开开心心过生活、踏踏实实做技术
    Android-理解Intent
  • 原文地址:https://www.cnblogs.com/sjc9009/p/9190695.html
Copyright © 2020-2023  润新知